<oauth> タグを使用すると、サードパーティの OAuth 2 認証プロバイダーをアプリケーションに簡単に統合できます。このタグでは現在、Facebook と Google の認証をサポートしています。また、このタグでは OAuth 2 プロトコルをサポートする OAuth プロバイダーもサポートしています。そのようなプロバイダーには、Microsoft や Github などがあります。
シンタックス
<cfoauth |
属性
属性 |
必須 / オプション |
デフォルト |
説明 |
Type="facebook" |
次のいずれかが必要です。 type または type と、エンドポイントの組み合わせのどちらかを指定できます。両方を指定することはできません。 |
|
現在サポートされている値は、 |
clientid |
required |
|
アプリケーションを OAuth プロバイダーに登録する際に生成される固有の ID です。 |
scope |
オプション |
Facebook の場合: Google の場合:https://www.googleapis.com |
scope は、 詳細については、Oauth プロバイダーの 例えば、Facebook もう 1 つの例として、Google 注意:scope 名は、OAuth プロバイダーによって異なります。 |
state |
オプション |
|
state 変数は、認証とリダイレクトが完了した後に、任意の情報を Web アプリケーションに渡す場合に使用します。この属性に渡した値は、認証後に Web アプリケーションに返されます。これは、クロスサイトリクエストフォージェリ(CSRF)保護に便利です。この属性には、ColdFusion のセキュリティ関連の CSRF 関数を使用できます。 |
authendpoint |
次のいずれかが必要です。 type または type と、エンドポイントの組み合わせのどちらかを指定できます。両方を指定することはできません。 |
Facebook の場合: Google の場合: |
type を指定しない場合、これは、ユーザー認証用に呼び出されるエンドポイント URL として使用されます。 |
secretkey |
オプション |
|
パラメーターは、ソーシャルメディアアプリケーションの設定で表示されるアプリシークレットです。 |
accesstokenendpoint |
次のいずれかが必要です。 type または type と、エンドポイントの組み合わせのどちらかを指定できます。両方を指定することはできません。 |
|
type を指定しない場合、これは、アプリ認証用に呼び出されるエンドポイント URL として使用されます。 |
result |
オプション |
|
ログインの成功/失敗、失敗の理由、ユーザー名、ユーザー ID など、ユーザーのログイン情報を含む構造体です。 |
redirecturi |
オプション |
これには、デフォルトで、コードを実行している URL が設定されます。 コードを実行するファイルが次の場合、
リダイレクト URI は次のようになります。 |
ユーザーの認証後にリダイレクトします。 |
urlparams |
オプション |
|
URL クエリー文字列として authendpoint に渡される追加オプションです。 |
ステップ 1:OAuth 2 プロバイダーに登録
関連するサイト固有のアプリケーションの詳細情報を使用して、アプリケーションを OAuth 2 プロバイダーに登録します(例えば、Facebook の場合、Facebook アプリ ID とアプリシークレットを作成する必要があります)。
ColdFusion では、cfoauth タグに ID とアプリシークレットを指定します。
注意:ColdFusion では、Facebook および Google を暗黙的にサポートしています。他のサイトの場合は、ユーザーのアクセストークンエンドポイントなどの属性を使用します。 |
シンタックスを次に示します。
<cfoauth |
redirecturi には、デフォルトで、コードを実行している URL が設定されます。例えば、OAuth 設定で、ユーザーがアプリケーション URL として http://domainname/appname を入力し、コードを実行するファイルとして http://domainname/appname/login.cfm を入力した場合、リダイレクト URI は http://domainname/appname/login.cfm になります。
また、ドメインの詳細情報をソーシャルメディアサイトに登録します。
ステップ 2:認証プロセスを把握
- ユーザーがクライアントサイトのログインボタンをクリックすると、権限を付与するためのポップアップが表示されます。
- ユーザーがクライアントサイトにログインしていない場合は、ログインするように要求されます。
- ユーザーが既にアプリケーションを承認しており、scope で要求されている権限を既に付与している場合は、すぐに redirect_uri にリダイレクトされます。
注意:ユーザーが既にアプリケーションを承認しているが、開発者が scope パラメーターで追加の権限を要求している場合は、ダイアログが開き、要求されているが、ユーザーがまだアプリケーションに付与していない権限が表示されます。 |
ステップ 3:実装
単純な認証の例を次に示します。
<cflogin> |