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エンタープライズ接続を作成できます。

  1. [Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]に移動し、[SAML]を選択します。

  2. [Create Connection(接続を作成する)]を選択します。

  3. 次の設定を構成します:

    設定 説明
    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(毎回のログインでユーザープロファイル属性を同期する) ログインするたびにユーザープロファイル属性が同期されます。

  4. [Create(作成)]を選択します。

プロキシゲートウェイのSAML接続を構成する

プロキシゲートウェイの背後にAuth0がある場合は、それに応じてSAML接続のdestinationUrlフィールドとrecipientUrlフィールドを構成する必要があります。

  1. Management API接続を取得エンドポイントを使用してSAML接続の現在の構成を取得します。

  2. 返された応答からoptionsオブジェクトの値をコピーします。

  3. optionsオブジェクトに次のフィールドを追加します。

    フィールド タイプ
    destinationUrl 文字列 プロキシゲートウェイのURL。
    recipientUrl 文字列 プロキシゲートウェイのURL。

  4. 要求本文内の更新されたoptionsブジェクト全体を使用してManagement API接続の更新エンドポイントを呼び出します。

要求テンプレートのカスタマイズ

Auth0がIdPに認証要求を送信すると、要求本文にAuthnRequestオブジェクトが含まれます。このオブジェクトに使用されるテンプレートをカスタマイズできます。

  1. [Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]>[SAML]に移動し、接続を選択します。

  2. [Settings(設定)]ビューに切り替えて、[Request Template(テンプレート要求)]フィールドを見つけます。

  3. テンプレートを修正します。

  4. [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 廃止予定です。新しい構成では、この代わりに、AssertionConsumerServiceURLDestinationを使用してください。

IdPを構成する

SAML IDプロバイダーの構成設定に移動して、IdPに提供する必要のあるメタデータを見つけます。

Auth0は、SAML 1.1またはSAML 2.0プロトコルに準拠する構成ですべてのSAML IdPをサポートしています。特定のプロバイダーを設定するための詳細な手順は次のとおりです。

接続をテストする

Dashboardで接続をテストするには:

  1. Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]>[SAML]に移動します。

  2. 作成した接続を見つけて、...(3つのドット)メニュー アイコンを選択し、[Try(試す)]を選択します。

  3. ユニバーサルログインページが表示され、資格情報の入力を求められます。

  4. IdPに存在するユーザーのメール アドレスを入力します。ホーム領域検出を構成した場合は、指定されたドメインのいずれかを使用するメールアドレスを入力してください。

  5. IdPのログイン画面にリダイレクトされたら、通常どおりログインします。

  6. IdPからAuth0に送信された認証アサーションの内容を表示するAuth0のページにリダイレクトされます。

接続のトラブルシューティング

接続が期待どおりに機能しない場合は、次の手順を試してください。

  • 各テストの前にブラウザの履歴、クッキー、キャッシュをクリアしてください。そうしないと、ブラウザが最新の構成情報を取得できなかったり、実行に影響する古いクッキーが残る可能性があります。

  • ブラウザでクッキーが許可され、JavaScriptが有効になっていることを確認してください。

  • トランザクションのHARファイルをキャプチャし、Auth0 SAMLツールを使用してSAMLアサーションをデコードし、そのコンテンツを確認します。

もっと詳しく