SAMLサービスプロバイダーとしてのAuth0の構成
Auth0をSAMLフェデレーションのサービスプロバイダー(SP)として構成するために、Auth0でエンタープライズ接続を作成し、接続するメタデータでSAML IDプロバイダー(IdP)を更新する必要があります。
Auth0は、SAML 1.1またはSAML 2.0プロトコルに準拠する構成でAuth0をSPとして使用することをサポートしています。
IdPからメタデータと署名証明書を入手
Auth0で接続を作成するには、IdPから複数の構成メタデータを収集する必要があります。
フィールド | 説明 |
---|---|
サインインURL | SAML認証要求が送信されるURL。これはシングルサインオン(SSO)エンドポイントとも呼ばれます。 |
サインアウトURL | SAMLログアウト要求が送信されるURL。これはシングルサインアウト(SLO)エンドポイントとも呼ばれます。 |
X509署名証明書 | SPによって要求された公開鍵証明書。これによって、IdPでデジタル署名された認証アサーションの署名を検証します。Auth0は、.pem形式と.cer形式を受け入れます。 |
Auth0でSAMLエンタープライズ接続を作成する
Auth0 DashboardまたはAuth0 Management APIを使用してSAMLエンタープライズ接続を作成できます。
[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(作成)]を選択します。
Auth0 Management APIの接続作成エンドポイントは、SAML接続を作成する際にoptions
オブジェクトの次のプロパティをサポートします:
フィールド | タイプ | 必須 | 説明 |
---|---|---|---|
signInEndpoint |
文字列 | 必須 | IdPの__サインインURL__。 |
signingCert |
文字列 | 必須 | Base64でエンコードされたX509署名証明書(.pem または.cer 形式)の内容。 |
debug |
ブール値 | 任意 | __デバッグモード__を切り替えます。このモードでは、認証プロセス中に詳細なログが記録されます。運用環境で使用される接続の場合はfalse に設定します。 |
destinationUrl |
文字列 | 任意 | Auth0がSAML認証要求を送信するURL。プロキシゲートウェイを使用する場合にのみ必要です。 |
digestAlgorithm |
文字列 | 任意 | 認証要求のダイジェスト要素を暗号化するために使用されるアルゴリズム。 受け入れられる値は sha256 とsha1 です。 |
disableSignout |
ブール値 | 任意 | __サインアウトURL__を切り替えます。false の場合、ログアウト要求を受け入れるために__サインアウトURL__を指定する必要があります。true の場合、ログアウト要求は__サインインURL__に送信されます。 |
fieldsMap |
オブジェクト | 任意 | IdPからの認証応答に適用される属性マッピングが含まれます。 例: "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" 。 |
idpinitiated |
オブジェクト | 任意 | IdP起点SSOのオプションが含まれます:
|
protocolBinding |
文字列 | 任意 | 認証要求に使用されるプロトコルバインディング。 受け入れられる値は次のとおりです:
|
recipientUrl |
文字列 | 任意 | IdPがSAML認証応答を送信するURL。プロキシゲートウェイを使用する場合にのみ必要です。 |
signatureAlgorithm |
文字列 | 任意 | 認証要求に署名するために使用されるアルゴリズム。 受け入れられる値は rsa-sha256 およびrsa-sha1 です。 |
signSAMLRequest |
ブール値 | 任意 | Auth0によって送信された認証要求の署名を切り替えます。 |
user_id_attribute |
文字列 | 任意 | ユーザーIDプロパティにマッピングする認証応答内の属性の名前。このフィールドは、fieldsMap オブジェクトのuser_id プロパティのマッピングよりも優先されます。 |
要求例
{
"strategy": "samlp",
"name": "example-samlp-connection",
"options": {
"signingCert": "{X509_CERTIFICATE_IN_BASE64}",
"signInEndpoint": "https://example.com/samlp/login",
"disableSignout": false,
"signOutEndpoint": "https://example.com/samlp/logout",
"fieldsMap": {
"email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
"user_id": [
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
],
"given_name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
"address_name": "http://schemas.auth0.com/address_name",
"address_street_address": "http://schemas.auth0.com/address_street_address"
},
"user_id_attribute": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
"idpinitiated": {
"enabled": true,
"client_id": "{DEFAULT_APPLICATION_CLIENT_ID}",
"client_protocol": "oauth2",
"client_authorizequery": "response_type=code&scope=openid email profile"
},
"signSAMLRequest": true,
"signatureAlgorithm": "rsa-sha256",
"digestAlgorithm": "sha256",
"protocolBinding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
"debug": true
}
}
Was this helpful?
プロキシゲートウェイの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アサーションをデコードし、そのコンテンツを確認します。