前提条件
始める前に以下を行います。-
Auth0にアプリケーションを登録します。
- 適切な [Application Type(アプリケーションタイプ)] を選択します。
{https://yourApp/callback}
の [Allowed Callback URL(許可されているコールバックURL)] を追加します。- アプリケーションの付与タイプに適切なフローが必ず含まれていることを確認してください。
-
このエンタープライズ接続の名前を決める
- ポストバックURL(別称、Assertion Consumer Service URL)は次のようになります:
https://{yourDomain}/login/callback?connection={yourConnectionName}
- エンティティIDは次のようになります:
urn:auth0:{yourTenant}:{yourConnectionName}
- ポストバックURL(別称、Assertion Consumer Service URL)は次のようになります:
手順
アプリケーションをSAML IDプロバイダーに接続するには、以下を行います。- IdPにポストバックURLとエンティティIDを入力します(方法については、「SAML IDプロバイダー構成の設定」をお読みください)。
- IdPから署名証明書を入手して、Base64に変換します。
- Auth0でエンタープライズ接続を作成します。
- Auth0アプリケーションでエンタープライズ接続を有効にします。
- マッピングをセットアップします(ほとんどの場合には必要ありません)。
- 接続をテストします。
IdPから署名証明書を入手する
SAMLログインでは、Auth0はサービスプロバイダーとして機能するため、SAML IdPから署名されたX.509証明書(PEMまたはCER形式)を取得する必要があります。これは後でAuth0にアップロードします。この証明書の取得にはさまざまな方法があるため、詳しい情報が必要な場合には、使用しているIdPのドキュメントを参照してください。署名証明書をBase64に変換する
署名されたX.509証明書のアップロードには、またはを使用することができます。Management APIを使用する場合には、ファイルをBase64に変換しなければなりません。これを行うには、シンプルなオンラインツールを使用するか、Bashで以下のコマンドを実行します:cat signing-cert.crt | base64
。
Auth0でエンタープライズ接続を作成する
次に、Auth0でSAMLのエンタープライズ接続を作成・構成してから、署名されたX.509証明書をアップロードする必要があります。この作業には、Auth0 DashboardまたはManagement APIを使用することができます。Dashboardを使用してエンタープライズ接続を作成する
-
[Auth0 Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]に移動し、 [SAML] の[
+
]を選択します。 -
接続の詳細を入力し、 [Create(作成)] をクリックします。
フィールド 説明 Connection name(接続名) 接続の論理識別子です。テナント内で一意でなければなりません。また、IdPでポストバックURLとエンティティIDを設定する際には、この同じ名前を使用しなければなりません。一度設定すると、この名前は変更できません。 Sign In URL(サインインURL) SAMLシングルログインURLです。 X.509 Signing Certificate(X.509署名証明書) このプロセスで前にIdPから取得した(PEMまたはCERでエンコードされた)署名証明書です。 Enable Sign Out(サインアウトを有効にする) 有効にすると、特定のサインアウトURLを設定することができます。設定しない場合は、サインインURLがデフォルトで使用されます。 Sign Out URL(サインアウトURL)(任意) SAMLシングルログアウトURLです。 User ID Attribute(ユーザーID属性)(任意) SAMLトークンに含まれる属性で、Auth0の user_id
プロパティにマッピングされます。Debug Mode(デバッグモード) 有効にすると、認証の処理について、より詳細なログが出力されます。 Sign Request(署名要求) 有効にすると、SAML認証要求が署名されます(付随した証明書をダウンロードして提供し、SAML IdPがアサーションの署名を検証できるようにしてください)。 Sign Request Algorithm(署名要求アルゴリズム) Auth0がSAMLアサーションを署名するのに使用するアルゴリズムです。 Sign Request Digest Algorithm(署名要求ダイジェストアルゴリズム) Auth0が署名要求のダイジェストに使用するアルゴリズムです。 Protocol Binding(プロトコルバインディング) IdPがサポートするHTTPバインディングです。 Request Template(要求テンプレート)(任意) SAML要求を形式化するテンプレートです。 -
[Provisioning(プロビジョニング)] ビューでユーザープロファイルがAuth0で作成および更新される方法を構成することができます。
フィールド 説明 Sync user profile attributes at each login(ログインごとにユーザープロファイル属性を同期する) 有効な場合、ユーザーがログインするたびにユーザープロファイルデータを自動的に同期するため、接続ソースで加えられた変更はAuth0で自動的に更新されます。 Sync user profiles using SCIM(SCIMを使ってユーザープロファイルを同期する) 有効な場合、SCIMを使ってユーザープロファイルデータを同期することができます。詳細については、「インバウンドSCIMを構成する」を参照してください。 -
[Login Experience(ログインエクスペリエンス)] ビューでこの接続でのユーザーログインの方法を構成することができます。
フィールド 説明 ホームレルムディスカバリー ユーザーのメールドメインを、指定されたIDプロバイダードメインと比較します。詳細については、[識別子優先認証の構成]を参照してください。(https://auth0.com/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first) 接続ボタンを表示 このオプションでは、アプリケーションの接続ボタンをカスタマイズするため次の選択肢が表示されます。 Button display name(ボタン表示名) (オプション) ユニバーサルログインのログインボタンをカスタマイズするために使用されるテキスト。設定されるとボタンは以下を読み取ります:“Continue with {Button display name}
”Button logo(ボタンロゴ)URL (任意) ユニバーサルログインのログインボタンをカスタマイズするために使用される画像のURL。設定されると、ユニバーサルログインのログインボタンは、20px×20pxの四角で画像を表示します。 任意のフィールドは、New Universal Loginでのみ使用することができます。Classic Loginを使用している場合、[Add(追加)]ボタン、ボタンの表示名、ボタンロゴのURLは表示されません。 - 統合を完了するのに必要な管理者権限を持っている場合には、 [Continue(続行)] をクリックして、IdPの構成に必要なカスタムパラメーターについて調べます。管理者権限を持っていない場合には、提示されたURLを管理者に提供して必要な設定を調整してもらってください。
Management APIを使用してエンタープライズ接続を作成する
Management APIを使用して、SAML接続を作成することもできます。その際には、SAMLの構成フィールドをそれぞれ手動で指定するか、構成値のあるSAMLメタデータドキュメントを指定することができます。指定した値を使って接続を作成する
接続作成エンドポイントにPOST
呼び出しを行います。MGMT_API_ACCESS_TOKEN
、CONNECTION_NAME
、SIGN_IN_ENDPOINT_URL
、SIGN_OUT_ENDPOINT_URL
とBASE64_SIGNING_CERT
のプレースホルダーをそれぞれManagement APIのアクセストークン、接続名、サインインURL、サインアウトURLとBase64エンコードされた署名証明書(PEMまたはCERの形式)に置き換えます。
値 | 説明 |
---|---|
MGMT_API_ACCESS_TOKEN | create:connections のスコープを持つManagement APIのアクセストークン。 |
CONNECTION_NAME | 作成される接続の名前。 |
SIGN_IN_ENDPONT_URL | 作成される接続のSAMLシングルログインURL。 |
SIGN_OUT_ENDPOINT_URL | 作成される接続のSAMLシングルログアウトURL。 |
BASE64_SIGNING_CERT | IdPから取得したX.509署名証明書(PEMまたはCERでエンコード)。 |
SAMLメタデータを使って接続を作成する
SAMLの構成フィールドをそれぞれ指定する代わりに、構成値のあるSAMLメタデータドキュメントを指定することができます。SAMLメタデータドキュメントを指定する際には、ドキュメントのXMLコンテンツ(metadataXml
)またはドキュメントのURL(metadataUrl
)を提供しても構いません。URLを提供すると、コンテンツが一度だけダウンロードされます。後でURLのコンテンツが変更されても、接続は自動的には再構成されません。
メタデータドキュメントのコンテンツを提供する
metadataXml
オプションを使用して、ドキュメントの内容を提供します。
メタデータドキュメントのURLを提供する
metadataUrl
オプションを使用して、ドキュメントのURLを提供します。
メタデータURLを使って既存の接続情報を更新する
この処理は、
metadataUrl
を使って手動で接続を作成した場合にのみ機能します。/api/v2/connections/CONNECTION_ID
エンドポイントにPATCH呼び出しを行い、本文に{options:{metadataUrl:'$URL'}}
を含めて渡します。ここで、$URL
は接続の作成に使ったのと同じメタデータURLになります。メタデータURLを使って一時的な接続を新たに作成してから、新旧の接続のプロパティを比較します。違いがある場合には、新しい接続を更新してから、一時的な接続を削除します。
options.metadataUrl
を使用してSAML接続を作成します。接続オブジェクトにメタデータからの情報が追加されます。- URLのメタデータコンテンツを更新します。
/api/v2/connections/CONNECTION_ID
エンドポイントに対して、{options:{metadataUrl:'$URL'}}
を含めてPATCH呼び出しを行います。これで、接続オブジェクトが新しいメタデータコンテンツで更新されました。
options
パラメーターを使用する場合は、options
オブジェクト全体をオーバーライドすることになります。すべてのパラメーターが存在することを確認してください。カスタムエンティティIDを指定する
カスタムエンティティIDを指定するには、Management APIを使用してデフォルトのurn:auth0:YOUR_TENANT:YOUR_CONNECTION_NAME
をオーバーライドします。接続が新規作成の場合や、既存の接続を更新する場合には、connection.options.entityID
プロパティを設定します。
以下のJSONの例を使用すると、カスタムエンティティIDを指定し、SAML IdPのメタデータURLを使って新しいSAML接続を作成することができます。エンティティIDは、接続名を使って作成されているため、一意のままになります。
Auth0アプリケーションでエンタープライズ接続を有効化する
新しいSAMLエンタープライズ接続を使用するには、まずAuth0アプリケーションの接続を有効化する必要があります。マッピングをセットアップする
標準以外のPingFederateサーバーに対してSAMLエンタープライズ接続を構成する場合は、属性マッピングを 更新しなければなりません 。
{}
間のマッピングを入力してから [Save(保存)] を選択します。
