![[17.0.0.2 and later]](../ng_v17002plus.gif)
Liberty でのソーシャル・ログインの構成
ユーザーが自分のソーシャル・メディア・アカウントを使用してログインすることで、Liberty サーバーでホストされている Web サイトへの認証を行えるように、Liberty サーバーを構成することができます。定義済みのソーシャル・メディア・プラットフォーム構成から選択するか、OAuth 2.0 標準または OpenID Connect 1.0 標準に基づくソーシャル・メディア・プラットフォーム用に独自の構成を定義してください。
このタスクについて
ソーシャル・ログインはシングル・サインオン (SSO) の形式の 1 つで、これを使用するとユーザーは、Web サイトにサインインする際に、その Web サイトのために専用のアカウントを作成するのではなく、自分が持っている既存のソーシャル・メディア・アカウントを利用することができます。例えば、ユーザーが自分の Facebook アカウントや Twitter アカウントを使用して Web サイトにログインできるように、ソーシャル・ログインを構成できます。OAuth 2.0 標準または OpenID Connect 1.0 標準を許可に使用するあらゆるソーシャル・メディア・プラットフォームに対して、ソーシャル・ログインを使用可能にすることができます。
手順
- Facebook のソーシャル・ログインの構成
- Facebook アプリケーションを作成します。 詳しくは、Facebook アプリ開発を参照してください。アプリケーションを構成する際、リダイレクト URL を以下のフォーマットで指定することで、Liberty サーバーをアプリケーションに登録してください。
https://liberty_host:SSL_port/ibm/api/social-login/redirect/facebookLogin
アプリケーションを作成した後、アプリケーション ID とアプリケーション秘密鍵をメモして、それらを Liberty の構成に追加します。
- Liberty サーバーの server.xml 構成ファイルを開き、socialLogin-1.0 および appSecurity-2.0フィーチャーを追加します。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- facebookLogin エレメントを追加して、アプリケーション ID とアプリケーション秘密鍵でそれを構成します。
<facebookLogin clientId="facebook_app_id" clientSecret="facebook_app_secret" />
facebookLogin エレメントは、Facebook への接続のための特定のデフォルト値を指定します。Facebook ログイン (Facebook Login) にリストされた属性を追加で構成することで、このデフォルト値をオーバーライドして他の設定を指定することができます。
- keyStore エレメントでトラストストアを構成し、そのトラストストアに Facebook エンドポイントから証明書をインポートします。
例えば、以下の構成は、デフォルトの Liberty トラストストア・ファイルをポイントしています。
証明書を Liberty トラストストアにインポートするには、ブラウザーで、facebookLogin エレメントで指定されたエンドポイントの 1 つに移動し、証明書をエクスポートします。iKeyman または Java keytool ユーティリティーなどの鍵管理ツールを使用して、証明書を Liberty トラストストア・ファイルに追加します。<keyStore id="defaultKeyStore" password="keyspass" />
ヒント: 場合によっては、複数の証明書をインポートする必要があります。どの証明書をインポートする必要があるのかについて詳しくは、messages.log ファイルを参照してください。
- Facebook アプリケーションを作成します。 詳しくは、Facebook アプリ開発を参照してください。
- GitHub のソーシャル・ログインの構成
- GitHub OAuth アプリケーションを作成します。 詳しくは、GitHub: OAuth
API に記載された Web アプリケーションに関する情報を参照してください。アプリケーションを構成する際、リダイレクト URL を以下のフォーマットで指定することで、Liberty サーバーをアプリケーションに登録してください。
https://liberty_host:SSL_port/ibm/api/social-login/redirect/githubLogin
アプリケーションを作成した後、クライアント ID とクライアント秘密鍵をメモして、それらを Liberty の構成に追加します。
- Liberty サーバーの server.xml 構成ファイルを開き、socialLogin-1.0 および appSecurity-2.0フィーチャーを追加します。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- githubLogin エレメントを追加して、クライアント ID とクライアント秘密鍵でそれを構成します。
<githubLogin clientId="github_client_id" clientSecret="github_client_secret" />
githubLogin エレメントは、GitHub への接続のための特定のデフォルト値を指定します。GitHub ログイン (GitHub Login) にリストされた属性を追加で構成することで、このデフォルト値をオーバーライドして他の設定を指定することができます。
- keyStore エレメントでトラストストアを構成し、そのトラストストアに GitHub エンドポイントから証明書をインポートします。
例えば、以下の構成は、デフォルトの Liberty トラストストア・ファイルをポイントしています。
証明書を Liberty トラストストアにインポートするには、ブラウザーで、githubLogin エレメントで指定されたエンドポイントの 1 つに移動し、証明書をエクスポートします。iKeyman または Java keytool ユーティリティーなどの鍵管理ツールを使用して、証明書を Liberty トラストストア・ファイルに追加します。<keyStore id="defaultKeyStore" password="keyspass" />
ヒント: 場合によっては、複数の証明書をインポートする必要があります。どの証明書をインポートする必要があるのかについて詳しくは、messages.log ファイルを参照してください。
- GitHub OAuth アプリケーションを作成します。 詳しくは、GitHub: OAuth
API に記載された Web アプリケーションに関する情報を参照してください。
- Google のソーシャル・ログインの構成
- Google API Console プロジェクト内に OAuth クライアント ID を作成します。 詳しくは、Creating a Google API Console project and client ID を参照してください。アプリケーションを構成する際、リダイレクト URL を以下のフォーマットで指定することで、Liberty サーバーをアプリケーションに登録してください。
https://liberty_host:SSL_port/ibm/api/social-login/redirect/googleLogin
クライアント ID を作成した後、クライアント ID とクライアント秘密鍵をメモして、それらを Liberty の構成に追加します。
- Liberty サーバーの server.xml 構成ファイルを開き、socialLogin-1.0 および appSecurity-2.0フィーチャーを追加します。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- googleLogin エレメントを追加して、クライアント ID とクライアント秘密鍵でそれを構成します。
<googleLogin clientId="google_client_id" clientSecret="google_client_secret" />
googleLogin エレメントは、Google への接続のための特定のデフォルト値を指定します。Google ログイン (Google Login) にリストされた属性を追加で構成することで、このデフォルト値をオーバーライドして他の設定を指定することができます。
- keyStore エレメントでトラストストアを構成し、そのトラストストアに Google エンドポイントから証明書をインポートします。
例えば、以下の構成は、デフォルトの Liberty トラストストア・ファイルをポイントしています。
証明書を Liberty トラストストアにインポートするには、ブラウザーで、googleLogin エレメントで指定されたエンドポイントの 1 つに移動し、証明書をエクスポートします。iKeyman または Java keytool ユーティリティーなどの鍵管理ツールを使用して、証明書を Liberty トラストストア・ファイルに追加します。<keyStore id="defaultKeyStore" password="keyspass" />
ヒント: 場合によっては、複数の証明書をインポートする必要があります。どの証明書をインポートする必要があるのかについて詳しくは、messages.log ファイルを参照してください。
- Google API Console プロジェクト内に OAuth クライアント ID を作成します。 詳しくは、Creating a Google API Console project and client ID を参照してください。
- LinkedIn のソーシャル・ログインの構成
- LinkedIn アプリケーションを作成します。 詳しくは、LinkedIn: Authenticating with OAuth 2.0 を参照してください。アプリケーションを構成する際、リダイレクト URL を以下のフォーマットで指定することで、Liberty サーバーをアプリケーションに登録してください。
https://liberty_host:SSL_port/ibm/api/social-login/redirect/linkedinLogin
アプリケーションを作成した後、クライアント ID とクライアント秘密鍵をメモして、それらを Liberty の構成に追加します。
- Liberty サーバーの server.xml 構成ファイルを開き、socialLogin-1.0 および appSecurity-2.0フィーチャーを追加します。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- linkedinLogin エレメントを追加して、クライアント ID とクライアント秘密鍵でそれを構成します。
<linkedinLogin clientId="linkedin_client_id" clientSecret="linkedin_client_secret" />
linkedinLogin エレメントは、LinkedIn への接続のための特定のデフォルト値を指定します。LinkedIn ログイン (LinkedIn Login) にリストされた属性を追加で構成することで、このデフォルト値をオーバーライドして他の設定を指定することができます。
- keyStore エレメントでトラストストアを構成し、そのトラストストアに LinkedIn エンドポイントから証明書をインポートします。
例えば、以下の構成は、デフォルトの Liberty トラストストア・ファイルをポイントしています。
証明書を Liberty トラストストアにインポートするには、ブラウザーで、linkedinLogin エレメントで指定されたエンドポイントの 1 つに移動し、証明書をエクスポートします。iKeyman または Java keytool ユーティリティーなどの鍵管理ツールを使用して、証明書を Liberty トラストストア・ファイルに追加します。<keyStore id="defaultKeyStore" password="keyspass" />
ヒント: 場合によっては、複数の証明書をインポートする必要があります。どの証明書をインポートする必要があるのかについて詳しくは、messages.log ファイルを参照してください。
- LinkedIn アプリケーションを作成します。 詳しくは、LinkedIn: Authenticating with OAuth 2.0 を参照してください。
- Twitter のソーシャル・ログインの構成
- Twitter アプリケーションを作成します。 詳しくは、Twitter Apps を参照してください。
アプリケーションの作成後、「ユーザーから E メール・アドレスを要求する (Request email addresses from users)」許可を有効にします。コンシューマー鍵とコンシューマー・シークレットを必ずメモしてください。それらを Liberty 構成に追加します。
オプションで、コールバック・ロックを有効にし、アプリケーションがコールバック URL を上書きすることがないようにできます。「設定 (Settings)」の下で、コールバック URL を以下のフォーマットで入力し、「コールバック・ロックを有効にする (Enable Callback Locking)」設定にチェック・マークを付けます。https://liberty_host:SSL_port/ibm/api/social-login/redirect/twitterLogin
- Liberty サーバーの server.xml 構成ファイルを開き、socialLogin-1.0 および appSecurity-2.0フィーチャーを追加します。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- twitterLogin エレメントを追加して、クライアント ID とクライアント秘密鍵でそれを構成します。
<twitterLogin consumerKey="twitter_consumer_key" consumerSecret="twitter_consumer_secret" />
twitterLogin エレメントは、Twitter への接続のための特定のデフォルト値を指定します。Twitter ログイン (Twitter Login) にリストされた属性を追加で構成することで、このデフォルト値をオーバーライドして他の設定を指定することができます。
- keyStore エレメントでトラストストアを構成し、そのトラストストアに Twitter エンドポイントから証明書をインポートします。
例えば、以下の構成は、デフォルトの Liberty トラストストア・ファイルをポイントしています。
証明書を Liberty トラストストアにインポートするには、ブラウザーで、twitterLogin エレメントで指定されたエンドポイントの 1 つに移動し、証明書をエクスポートします。iKeyman または Java keytool ユーティリティーなどの鍵管理ツールを使用して、証明書を Liberty トラストストア・ファイルに追加します。<keyStore id="defaultKeyStore" password="keyspass" />
ヒント: 場合によっては、複数の証明書をインポートする必要があります。どの証明書をインポートする必要があるのかについて詳しくは、messages.log ファイルを参照してください。
- Twitter アプリケーションを作成します。 詳しくは、Twitter Apps を参照してください。
- Instagram や Pinterest など、OAuth 2.0 をサポートするソーシャル・メディア・プラットフォームのソーシャル・ログインを構成します。
- ソーシャル・メディア・プラットフォームのアプリケーションを作成します。 詳しくは、個別のソーシャル・メディア・プラットフォームの資料を参照してください。
アプリケーションを作成した後、クライアント ID とクライアント秘密鍵をメモして、それらを Liberty の構成に追加します。
- Liberty サーバーの server.xml 構成ファイルを開き、socialLogin-1.0 および appSecurity-2.0フィーチャーを追加します。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- oauth2Login エレメントを追加し、ソーシャル・メディア・プラットフォームへの接続を構成します。 構成可能な属性について詳しくは、OAuth 2,0 ログイン (OAuth 2,0 Login) を参照してください。例えば、以下の構成は、Instagram アプリケーションのソーシャル・ログインを定義したものです。
<oauth2Login id="instagramLogin" clientId="client_id" clientSecret="client_secret" scope="basic public_content" responseType="code" tokenEndpointAuthMethod="client_secret_post" authorizationEndpoint="https://api.instagram.com/oauth/authorize" tokenEndpoint="https://api.instagram.com/oauth/access_token" userApi="https://api.instagram.com/v1/users/self" userNameAttribute="username" website="https://www.instagram.com/developer/authentication/"> </oauth2Login>
構成のヒント:- Liberty サーバーは、scope 属性で定義された OAuth スコープ値をソーシャル・メディア・プラットフォームに渡します。定義されたスコープはソーシャル・メディアプラットフォームのサポート対象でなければなりません。また、スコープは、Liberty サーバーがソーシャル・メディア・プラットフォームからユーザー・データを読み取るために十分なアクセス権限を付与する必要があります。さらに、ソーシャル・メディア・アプリケーションがマーケティング API など他のソーシャル・メディア API を呼び出すことを予定している場合、定義された値にはそれらの API が必要とするスコープが含まれていなければなりません。
- authorizationEndpoint 属性および tokenEndpoint 属性にソーシャル・メディア・プラットフォームのエンドポイントを定義します。Liberty サーバーは、ユーザーを認証して OAuth 許可コードを取得するために、まずユーザーを許可エンドポイントにリダイレクトします。次に、OAuth 許可コードを OAuth トークンと交換するために、トークン・エンドポイントを呼び出します。
- keyStore エレメントでトラストストアを構成し、そのトラストストアにソーシャル・メディア・エンドポイントから証明書をインポートします。
例えば、以下の構成は、デフォルトの Liberty トラストストア・ファイルをポイントしています。
証明書を Liberty トラストストアにインポートするには、ブラウザーで、oauth2Login エレメントで指定されたエンドポイントの 1 つに移動し、証明書をエクスポートします。iKeyman または Java keytool ユーティリティーなどの鍵管理ツールを使用して、証明書を Liberty トラストストア・ファイルに追加します。<keyStore id="defaultKeyStore" password="keyspass" />
ヒント: 一部のソーシャル・メディア・プラットフォームでは、複数の証明書をインポートしなければならない場合があります。どの証明書をインポートする必要があるのかについて詳しくは、messages.log ファイルを参照してください。 - ソーシャル・メディア・アプリケーションに戻り、構成済みの oauth2Login エレメントの ID を指すリダイレクト URL またはコールバック URL を以下のフォーマットで構成します。
例えば、Instagram 用の oauth2Login 構成の例の場合、リダイレクト URL のフォーマットは次のようになります。https://liberty_host:SSL_port/ibm/api/social-login/redirect/oauth2login_id
https://liberty_host:SSL_port/ibm/api/social-login/redirect/instagramLogin
- ソーシャル・メディア・プラットフォームのアプリケーションを作成します。 詳しくは、個別のソーシャル・メディア・プラットフォームの資料を参照してください。
- OpenID Connect 1.0 をサポートするソーシャル・メディア・プラットフォームのソーシャル・ログインを構成します。
- ソーシャル・メディア・プラットフォームのアプリケーションを作成します。 詳しくは、個別のソーシャル・メディア・プラットフォームの資料を参照してください。
アプリケーションを作成した後、クライアント ID とクライアント秘密鍵をメモして、それらを Liberty の構成に追加します。
- Liberty サーバーの server.xml 構成ファイルを開き、socialLogin-1.0 および appSecurity-2.0フィーチャーを追加します。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- oidcLogin エレメントを追加し、ソーシャル・メディア・プラットフォームへの接続を構成します。 構成可能な属性について詳しくは、OpenID Connect 1,0 ログイン (OpenID Connect 1,0 Login) を参照してください。例えば、以下の構成は、OpenID Connect を使用する Google アプリケーションのソーシャル・ログインを定義したものです。
<oidcLogin id="googleOIDCLogin" clientId="client_id" clientSecret="client_secret" authorizationEndpoint="https://accounts.google.com/o/oauth2/v2/auth" tokenEndpoint="https://www.googleapis.com/oauth2/v4/token" jwksUri="https://www.googleapis.com/oauth2/v3/certs" scope="openid profile email" userNameAttribute="email" isClientSideRedirectSupported="true" issuer="https://accounts.google.com" realmNameAttribute="iss" > </oidcLogin>
構成のヒント:- Liberty サーバーは、scope 属性で定義された OAuth スコープ値をソーシャル・メディア・プラットフォームに渡します。定義されたスコープはソーシャル・メディアプラットフォームのサポート対象でなければなりません。また、スコープは、Liberty サーバーがソーシャル・メディア・プラットフォームからユーザー・データを読み取るために十分なアクセス権限を付与する必要があります。さらに、ソーシャル・メディア・アプリケーションがマーケティング API など他のソーシャル・メディア API を呼び出すことを予定している場合、定義された値にはそれらの API が必要とするスコープが含まれていなければなりません。
- authorizationEndpoint 属性および tokenEndpoint 属性にソーシャル・メディア・プラットフォームのエンドポイントを定義します。Liberty サーバーは、ユーザーを認証して OAuth 許可コードを取得するために、まずユーザーを許可エンドポイントにリダイレクトします。次に、OAuth 許可コードを OAuth トークンと交換するために、トークン・エンドポイントを呼び出します。
- keyStore エレメントでトラストストアを構成し、そのトラストストアにソーシャル・メディア・エンドポイントから証明書をインポートします。
例えば、以下の構成は、デフォルトの Liberty トラストストア・ファイルをポイントしています。
証明書を Liberty トラストストアにインポートするには、ブラウザーで、oidcLogin エレメントで指定されたエンドポイントの 1 つに移動し、証明書をエクスポートします。iKeyman または Java keytool ユーティリティーなどの鍵管理ツールを使用して、証明書を Liberty トラストストア・ファイルに追加します。<keyStore id="defaultKeyStore" password="keyspass" />
ヒント: 一部のソーシャル・メディア・プラットフォームでは、複数の証明書をインポートしなければならない場合があります。どの証明書をインポートする必要があるのかについて詳しくは、messages.log ファイルを参照してください。 - ソーシャル・メディア・アプリケーションに戻り、構成済みの oidcLogin エレメントの ID を指すリダイレクト URL またはコールバック URL を以下のフォーマットで構成します。
例えば、oidcLogin 構成の例の場合、リダイレクト URL のフォーマットは次のようになります。https://liberty_host:SSL_port/ibm/api/social-login/redirect/oidclogin_id
https://liberty_host:SSL_port/ibm/api/social-login/redirect/googleOIDCLogin
- ソーシャル・メディア・プラットフォームのアプリケーションを作成します。 詳しくは、個別のソーシャル・メディア・プラットフォームの資料を参照してください。
サブトピック
Liberty のソーシャル・メディア選択フォーム
要求を保護するように構成されたソーシャル・メディア・プロバイダーが複数ある場合、WebSphere® Application Server Liberty は、デフォルト・ソーシャル・メディア選択フォームを提供します。このフォームは、保護リソース要求に対してユーザー自身を認証するため、Liberty サーバーに構成されている使用可能なプロバイダーから選択するためのオプションをユーザーに提供します。Liberty のカスタム・ソーシャル・メディア選択フォームの構成
Liberty が提供するデフォルトのソーシャル・メディア選択フォームを構成する代わりに、独自のソーシャル・メディア選択フォームを構成できます。要求を保護するように構成されたソーシャル・メディア・プロバイダーが複数ある場合、このオプションを選択できます。

ファイル名: twlp_sec_sociallogin.html