IdPからメタデータと署名証明書を入手
Auth0で接続を作成するには、IdPから複数の構成メタデータを収集する必要があります。フィールド | 説明 |
---|---|
サインインURL | SAML認証要求が送信されるURL。これはシングルサインオン(SSO)エンドポイントとも呼ばれます。 |
サインアウトURL | SAMLログアウト要求が送信されるURL。これはシングルサインアウト(SLO)エンドポイントとも呼ばれます。 |
X509署名証明書 | SPによって要求された公開鍵証明書。これによって、IdPでデジタル署名された認証アサーションの署名を検証します。Auth0は、.pem形式と.cer形式を受け入れます。 |
Auth0でSAMLエンタープライズ接続を作成する
またはAuth0 を使用してSAMLエンタープライズ接続を作成できます。- Dashboard
- Management API
- [Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)] に移動し、 [SAML] を選択します。
- [Create Connection(接続を作成する)] を選択します。
-
次の設定を構成します:
設定 説明 Connection Name(接続名) SAML-SP
などの接続名を入力します。Sign In URL(サインインURL) IdPから取得した__サインインURL__を入力します。 X509 Signing Certificate(X509署名証明書) IdPから取得したX509署名証明書ファイル( .pem
または.cer
の形式)をアップロードします。Enable Sign Out(サインアウトの有効化) __サインアウトURL__フィールドを有効にします。 Sign Out URL(サインアウトURL) IdPから取得した__サインアウトURL__を入力します。 User ID Attribute(ユーザーID属性) SAMLトークンに含まれる属性を入力します。この属性はAuth0の user_id
プロパティにマッピングされます。設定しない場合は、user_id
が(ここで記載する優先順に)以下から取得されます:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
Debug Mode(デバッグモード) __デバッグモード__を有効にすると、より詳細なログを記録します。 Sign Request(要求に署名する) SAML認証要求が署名されます。 Sign Request Algorithm(要求署名アルゴリズム) 使用するハッシュアルゴリズムをドロップダウンメニューから選択します。 Sign Request Algorithm Digest(要求署名アルゴリズムのダイジェスト) アサーションの有効性を確認するアルゴリズムをドロップダウンメニューから選択します。 Protocol Binding(プロトコルバインディング) ドロップダウンメニューから以下のいずれかを選択します。 HTTP-Redirect
:URLパラメーターにメッセージを含めて送信します。HTTP-POST
:HTMLフォームにメッセージを含めて送信します。
Sync user profile attributes at each login(毎回のログインでユーザープロファイル属性を同期する) ログインするたびにユーザープロファイル属性が同期されます。 - [Create(作成)] を選択します。
プロキシゲートウェイのSAML接続を構成する
プロキシゲートウェイの背後にAuth0がある場合は、それに応じてSAML接続のdestinationUrl
フィールドとrecipientUrl
フィールドを構成する必要があります。
- Management API接続を取得エンドポイントを使用してSAML接続の現在の構成を取得します。
-
返された応答から
options
オブジェクトの値をコピーします。 -
options
オブジェクトに次のフィールドを追加します。フィールド タイプ 値 destinationUrl
文字列 プロキシゲートウェイのURL。 recipientUrl
文字列 プロキシゲートウェイのURL。 -
要求本文内の更新された
options
ブジェクト全体を使用してManagement API接続の更新エンドポイントを呼び出します。
要求テンプレートのカスタマイズ
Auth0がIdPに認証要求を送信すると、要求本文にAuthnRequest
オブジェクトが含まれます。このオブジェクトに使用されるテンプレートをカスタマイズできます。
- [Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]>[SAML]に移動し、接続を選択します。
- [Settings(設定)] ビューに切り替えて、 [Request Template(テンプレート要求)] フィールドを見つけます。
- テンプレートを修正します。
- [Save Changes(変更の保存)] を選択します。
テンプレート変数
変数は、@@VariableName@@
構文を使用してAuthnRequest
テンプレートに配置できます。次の変数を使用できます。
名前 | 説明 |
---|---|
AssertionConsumerServiceURL | ユーザーがサインインすると、IdPが応答を送信するURLです。使用する場合には、要求テンプレートにProtocolBinding 属性を含めます。 |
Connection.<options-key> | Auth0 Management APIの接続取得エンドポイントから返された接続のoptions の値にアクセスするには、Connection キーにドット表記を使用します。たとえば、接続がoptions.some_property: "value" を含む場合には、テンプレートで@@Connection.some_property@@ を使用することができます。 |
Destination | Auth0が要求を送信するURLです。これは接続に構成された__サインインURL__になります。 |
ID | トランザクションIDです。 |
IssueInstant | トランザクションのタイムスタンプです。 |
Issuer | urn 形式のSPエンティティIDです。例: urn:auth0:<YOUR_AUTH0_TENANT_NAME>:<YOUR_AUTH0_CONNECTION_NAME> |
LoginHint | ログインしようとしているユーザーのユーザー名またはメールアドレスです。Identifier First認証では、Auth0はこの値をIdPに送信して、IdPのログインフォームに前もって入力しておくことができます。 |
ProtocolBinding | プロトコルのバインドタイプです。 |
ProviderName | 要求を始めたアプリケーションの名前です。これは常にAuth0のテナント名を返します。 |
AssertServiceURLAndDestination | 廃止予定です。新しい構成では、この代わりに、AssertionConsumerServiceURL とDestination を使用してください。 |
IdPを構成する
SAML IDプロバイダーの構成設定に移動して、IdPに提供する必要のあるメタデータを見つけます。 Auth0は、SAML 1.1またはSAML 2.0プロトコルに準拠する構成ですべてのSAML IdPをサポートしています。特定のプロバイダーを設定するための詳細な手順は次のとおりです。接続をテストする
Dashboardで接続をテストするには:- [Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]>[SAML]に移動します。
- 作成した接続を見つけて、 … (3つのドット)メニュー アイコンを選択し、 [Try(試す)] を選択します。
- ユニバーサルログインページが表示され、資格情報の入力を求められます。
- IdPに存在するユーザーのメール アドレスを入力します。ホーム領域検出を構成した場合は、指定されたドメインのいずれかを使用するメールアドレスを入力してください。
- IdPのログイン画面にリダイレクトされたら、通常どおりログインします。
- IdPからAuth0に送信された認証アサーションの内容を表示するAuth0のページにリダイレクトされます。
接続のトラブルシューティング
接続が期待どおりに機能しない場合は、次の手順を試してください。- 各テストの前にブラウザの履歴、クッキー、キャッシュをクリアしてください。そうしないと、ブラウザが最新の構成情報を取得できなかったり、実行に影響する古いクッキーが残る可能性があります。
- ブラウザでクッキーが許可され、JavaScriptが有効になっていることを確認してください。
- トランザクションのHARファイルをキャプチャし、Auth0 SAMLツールを使用してSAMLアサーションをデコードし、そのコンテンツを確認します。