- Dashboardから、[Authentication(認証)]>[Social(ソーシャル)]に移動します。
- [Create Connection(接続を作成)] を選択し、リストの下部に移動してから [Create Custom(カスタムを作成)] を選択します。
- Connection Name(接続名) :作成している接続の論理識別子です。この名前は変更できません。先頭と末尾が英数字でなければなりません。英数字とダッシュ以外は使用できません。
-
Authorization URL(認可URL) :URLユーザーがログインのためにリダイレクトされるURLです。
認可URLにあるOAuth2の
response_mode
パラメーターは設定しないでください。この接続は、デフォルトのresponse_mode
(query
)のみに対応しています。 - Token URL(トークンURL) :URL受け取った認可コードをアクセストークンとIDトークン(要求された場合)に交換するために使用されます。
-
Scope(スコープ) :認可要求と一緒に送信する
scope
パラメーターです。複数のスコープはスペースで区切ります。 -
Separate scopes using a space(スコープをスペースで区切る) :
connection_scope
パラメーターがIdPのAPI呼び出しに含まれる場合に、スコープの区切り方を決めるトグルです。デフォルトでは、スコープはカンマで区切られます。このトグルを有効にすると、スコープがスペースで区切られます。詳細については、「IDプロバイダーのAPI呼び出しにスコープ/許可を追加する」をお読みください。 - (クライアントID) :アプリケーションとしてAuth0を使う場合のクライアントIDで、認可の要求や認可コードの交換に使用されます。クライアントIDを取得するには、IDプロバイダーに登録する必要があります。
- (クライアントシークレット) :アプリケーションとしてAuth0をを使う場合のクライアントシークレットで、認可コードの交換に使用されます。クライアントシークレットを取得するには、IDプロバイダーに登録する必要があります。
- Fetch User Profile Script(ユーザープロファイルの取得スクリプト) :提供されたアクセストークンでユーザー情報URLを呼び出すためのNode.jsスクリプトです。このスクリプトの詳細については、「ユーザープロファイルの取得スクリプト」を参照してください。
カスタムのIDプロバイダーを構成するときは、Callback URLに「
https://{yourDomain}/login/callback
」を使用します。認証フローを更新する
作成された接続にはデフォルトで、認可コードフローのOAuth 2.0付与タイプが割り当てられます。クライアントシークレットを保管できない公開アプリケーション(シングルページアプリケーションやネイティブアプリケーションなど)がある場合には、を使って接続を更新し、PKCEを使用した認可コードフローが使えるようにすることができます。認可フローの詳細については、「どのOAuth 2.0フローを使用するべきですか?-
/get-connections-by-id
エンドポイントに対してGET
要求を行います。応答は以下のようになります。 -
options
オブジェクト全体をコピーします。 -
options
オブジェクトを使ってPATCH
要求を行い、"pkce_enabled":``true
を追加します。
options
全体を含めないと、情報が失われ、接続が切断されます。ユーザープロファイルの取得スクリプト
ユーザーがOAuth2プロバイダーを使ってログインすると、ユーザープロファイルの取得スクリプトが呼び出されます。Auth0はこのスクリプトを実行して、OAuth2プロバイダーのAPIを呼び出し、ユーザープロファイルを取得します。user_id
プロパティは必須です。email
プロパティは任意ですが、強く推奨されます。返される可能性のある属性については、「ユーザープロファイルのルート属性」を参照してください。
プロバイダーから返されるプロファイルの内容には、フィルタリング、追加や削除を実行することができます。ただし、このスクリプトはできるだけシンプルに保つことをお勧めします。ユーザー情報のより高度な操作は、ルールを使って実行することができます。ルールを使用する利点の1つは、任意の接続に適用できることです。
カスタム接続を使用してログインする
カスタム接続でのユーザーログインには、Auth0の標準的なメカニズムであれば何でも使用することができます。直接リンクは以下のようになります。アイコンと表示名を変更する
IDプロバイダーのログインボタンにアイコンを追加するには、options
オブジェクトのicon_url
プロパティ、ログインボタンのテキストを変更するにはdisplay_name
プロパティをManagement API経由で使用します。
- 要求に
display_name
が含まれていない場合には、フィールドが接続のname
値で上書きされます。 display_name
とicon_url
は、ユニバーサルログインエクスペリエンスでの接続の表示方法にのみ影響します。
プロバイダー固有のパラメータを渡す
OAuth 2.0プロバイダーの認可エンドポイントには、プロバイダー固有のパラメーターを渡すことができます。パラメーターは静的でも動的でも構いません。静的パラメーターを渡す
静的パラメーター(すべての認可要求で送信されるパラメーター)を渡すには、Management APIを使ってOAuth 2.0接続を構成した場合、option
のauthParams
要素を使用することができます。以下の呼び出しは、すべての認可要求について、custom_param
の静的パラメーターをcustom.param.value
に設定します。
動的パラメーターを渡す
特定の状況で、OAuth 2.0 IDプロバイダーに動的な値を渡したいことがあります。この場合には、options
のauthParamsMap
要素を使って、Auth0の/authorize
エンドポイントが受け入れる既存の追加パラメーターの1つと、IDプロバイダーが受け入れるパラメーターのマッピングを指定することができます。
上の例で、custom_param
パラメーターを認可エンドポイントに渡したい場合に、Auth0の/authorize
エンドポイント呼び出しでパラメーターの実際の値を指定したいとします。
この場合には、/authorize
エンドポイントが受け入れる既存の追加パラメーターの1つ(access_type
など)を使って、それをcustom_param
パラメーターにマッピングすることができます。
/authorize
エンドポイントを呼び出す際にaccess_type
パラメーターにアクセスタイプを渡すことができ、その値がcustom_param
パラメーターで認可エンドポイントに渡されます。
追加のヘッダーを渡す
場合によっては、OAuth 2.0プロバイダーのトークンエンドポイントに追加のヘッダーを渡す必要があります。追加のヘッダーを構成するには、接続の設定を開いて、 [Custom Headers(カスタムヘッダー)] フィールドに、カスタムヘッダーがキーと値のペアとして含まれるJSONオブジェクトを指定します。Authorization
ヘッダーでBasic認証の資格情報を渡す必要があるとします。このシナリオでは、 [Custom Headers(カスタムヘッダー)] フィールドに以下のJSONオブジェクトを指定することができます。
[your credentials]
は、IDプロバイダーに送信する実際の資格情報となります。