メインコンテンツへスキップ

SMPをOpenIDProviderとして利用する

SMPをOpenIDProviderとして利用する
SMPをOpenIDProviderとして利用するこのページでは、SSO/IdP機能のOIDCのクライアントでの操作・設定について記載しています。OpenIDConnect自体の技術的な仕様については、OpenIDファウンデーションのように、外部のページをご確認ください。また本機能はOpenIDConnect1.0で定義される、AuthorizationCodeFlowのみをサポートしています。AuthorizationCodeFlow以外のフローには対応していないため、連携したいアプリが連携可能かどうか制限事項を事前にご確認ください。利用方法の概要1.クライアント登録を開く2.連携したいクライアント(RP)の情報を確認し入力する3.クライアントID、クライアントシークレットを控える4.連携したいクライアント(RP)にIdPの情報を登録する各項目の説明OpenIDConnectでの制限事項利用方法の概要連携先にSMPと連携するユーザーを作成します設定>SSO/IdPに遷移し、「新規登録」ボタンを押します「プロトコル」のSAML/OIDC/OAuth2の中から、「OIDC」を選択します連携したいクライアント(RP)の情報を確認し、入力します登録後、クライアントIDなどを控えます連携したいクライアント(RP)に、IdPの情報を登録します連携したログインが実施できます注意上記の手順のうち1と5については、連携先によって設定が異なるため、連携先のマニュアルをご確認ください。1.クライアント登録を開く設定>SSO/IdPに遷移します「新規登録」ボタンをクリックします「プロトコル」のSAML/OIDC/OAuth2の中から、「OIDC」を選択します2.連携したいクライアント(RP)の情報を確認し入力するクライアントへの具体的な入力値については、基本的には連携先のマニュアル等に記載されています。例として、AmazonCognitoであればリダイレクトURIに入る値は、となります。連携先の仕様・設定をご確認の上、リダイレクトURI・クライアントタイプ・OIDC標準クレーム群をご入力ください。3.クライアントID、クライアントシークレットを控える登録したクライアントの詳細画面を開きます「クライアントID」の値を控えますクライアントタイプが「コンフィデンシャル」であれば、「クライアントシークレット」の値も控えてください注意クライアントシークレットの値を、公開することは基本的にお控えください。またセキュリティについて留意の上、管理をお願いします。4.連携したいクライアント(RP)にIdPの情報を登録する連携したいクライアント(RP)に、連携可能なユーザーを事前に作成してください。また項目名の表記は連携先によって異なるため、連携先の仕様をご確認の上、設定してください。No項目名説明1発行者IssuerClaimに相当する項目にSMPのドメイン名を入力してください。例:ドメイン名がdemo-manual.shanon.co.jpであれば、「」になります。2連携先からのリクエストメソッドGETを選択してください。3クライアントIDSSO/IdP機能のクライアント詳細にある、「クライアントID」を入力してください。4クライアントシークレットSSO/IdP機能のクライアント詳細にある、「クライアントシークレット」を入力してください。クライアントタイプが「パブリック」に設定されている場合は不要です。5承認スコープ「openid」を入力してください。6認証エンドポイントリードの場合は、SMPの/public/sso/login/visitorを登録してください。管理者の場合は、SMPの/public/sso/login/adminとなります。例:ドメイン名がdemo-manual.shanon.co.jpで、リードを対象にするのであれば、「」になります。7Tokenエンドポイントリードの場合は、SMPの/public/sso/token/visitorを登録してください。管理者の場合は、SMPの/public/sso/token/adminとなります。例:ドメイン名がdemo-manual.shanon.co.jpで、リードを対象にするのであれば、「」になります。8UserInfoエンドポイントリードの場合は、SMPの/public/sso/userinfo/visitorを登録してください。管理者の場合は、SMPの/public/sso/userinfo/adminとなります。例:ドメイン名がdemo-manual.shanon.co.jpで、リードを対象にするのであれば、「」になります。9JWKsエンドポイントリードの場合は、SMPの/public/sso/key/visitorを登録してください。管理者の場合は、SMPの/public/sso/key/adminとなります。例:ドメイン名がdemo-manual.shanon.co.jpで、リードを対象にするのであれば、「」になります。10code_challenge_methodPKCEを利用する場合、code_challenge_methodには、plainとS256のみ利用できます。plainの利用は非推奨です。PKCEの仕様についてはRFC7636をご確認ください。SSO/IdP機能ではOpenIDConnect1.0で定義されるProviderMetadataには対応していないため、Configurationエンドポイントを設定して、自動的にその他エンドポイント等を検出する機能は利用できません。注意点設定に失敗、あるいは連携先が対応していない場合、ここまでの手順でログインできない場合があります。連携先にログインできない等のトラブルについては、FAQ、エラーメッセージ、注意・制限事項をご確認ください。各項目の説明No項目名説明1クライアント名クライアントの名前です。SSOの動作には影響しません。2プロトコルOpenIDConnectで利用する場合、「OIDC」を選択してください。3リダイレクトURIOpenIDConnect1.0のredirect_uriです。詳細はOpenIDConnectの仕様をご確認ください。連携先のマニュアル・仕様等を確認して、RPから出力されるredirect_uriと完全一致する文字列を入力してください。4クライアントタイプOpenIDProviderのクライアントタイプです。詳細はRFC6749をご確認ください。「パブリック」「コンフィデンシャル」のどちらかを選択してください。「パブリック」の場合、連携先(RP)へのクライアントシークレットの登録は不要です。5スコープ詳細・削除画面でのみ表示されます。openidのみです。6証明書の有効期限詳細・削除画面でのみ表示されます。詳細はクライアントを管理するをご確認ください。7OIDC標準クレーム群OpenIDConnect1.0で定義される、ユーザー情報を渡すためのクレーム群です。フルネーム(profile:name)、国名(address:country)などのOIDC標準クレーム群項目には、[%email%]形式の変数で、リードの情報を利用できます。この変数についての詳細はクライアントを管理するをご確認ください。クライアント登録・編集画面から設定したものに、ログインしたリードの情報が反映され、{sub:visitor|221,name:マニュアルサンプル,given_name:サンプル,family_name:マニュアル,preferred_username:マニュアルサンプルリード,email:manual@smp-sample.co.jp}/public/sso/userinfo/visitorのUserInfoエンドポイントから、上記のようなJSON形式で返ります。詳細はOpenIDConnectの公式など、外部サイトをご確認ください。管理者の場合は決まった値を取り、クライアント登録画面での設定が反映されないのでご注意ください。また識別子のsubには常に以下の内容で設定されます。・リードの場合:visitor|(リードID)・管理者の場合:admin|(管理者ID)8フルネーム(profile:name)フルネームにあたる項目です。[%name1%][%name3%][%name2%]のように、名・ミドルネーム・姓をつなげたフルネームが入るように変数を組み合わせたり、リード追加項目で「ニックネーム」を作成するなど、好みの形式で変数を設定してください。9名(profile:given_name)名前にあたる項目です。[%name2%]のように、名字が入るように変数を組み合わせたり、リード追加項目で「名」を作成するなど、好みの形式で変数を設定してください。10姓(profile:family_name)名字、姓にあたる項目です。[%name1%]のように名字、姓が入るように変数を組み合わせたり、リード追加項目で「姓」を作成するなど、好みの形式で変数を設定してください。11ミドルネーム(profile:middle_name)ミドルネームあたる項目です。[%name3%]のように、ミドルネームに当たるものが入るように変数を組み合わせたり、リード追加項目で「ミドルネーム」を作成するなど、好みの形式で変数を設定してください。12ニックネーム(profile:nickname)ニックネームにあたる項目です。[%name1%]さんのように変数と文字列を組み合わせたり、リード追加項目で「ニックネーム」を作成するなど、好みの形式で変数を設定してください。13好みのユーザー名(profile:preferred_username)好みのユーザー名にあたる項目です。[%company_name%][%name1%]様のように、変数を組み合わせたり、リード追加項目で「好みのユーザー名」を作成するなど、好みの形式で変数を設定してください。14プロフィールページのURL(profile:profile)プロフィールページのURLにあたる項目です。リード追加項目で「プロフィールページのURL」を作成するなど、好みの形式で変数を設定してください。15プロフィール画像のURL(profile:picture)プロフィール画像のURLにあたる項目です。リード追加項目で「プロフィール画像のURL」を作成するなど、好みの形式で変数を設定してください。16Webサイト・ブログのURL(profile:website)Webサイト・ブログのURLにあたる項目です。リード追加項目で「Webサイト・ブログのURL」を作成するなど、好みの形式で変数を設定してください。17性別(profile:gender)性別にあたる項目です。リード追加項目で「性別」を作成するなど、好みの形式で変数を設定してください。18生年月日(profile:birthdate)生年月日にあたる項目です。リード追加項目で「生年月日」を作成するなど、好みの形式で変数を設定してください。19タイムゾーン(profile:zoneinfo)タイムゾーンにあたる項目です。リード追加項目で「タイムゾーン」を作成するなど、好みの形式で変数を設定してください。20ロケール(profile:locale)ロケールにあたる項目です。リード追加項目で「ロケール」を作成するなど、好みの形式で変数を設定してください。21プロフィール最終更新日(profile:updated_at)プロフィール最終更新日にあたる項目です。リード追加項目で「プロフィール最終更新日」を作成するなど、好みの形式で変数を設定してください。(リードの「システム更新日時」はSSO/IdP機能の変数に未対応です。)22メールアドレス(email:email)メールアドレスにあたる項目です。[%email%]、[%email2%]のようにリードのメールアドレスを変数で利用する、あるいはリード追加項目で「Email3」を作成するなど、好みの形式で変数を設定してください。23メールアドレスが検証済み(email:email_verified)メールアドレスが有効かどうか、にあたる項目です。リード追加項目で「メールアドレスが有効」を作成するなど、好みの形式で変数を設定してください。(E-mailアドレスの有効フラグはSSO/IdPの変数に未対応です。)24電話番号(phone:phone_number)電話番号にあたる項目です。[%tel%]、[%tel2%]のように、電話番号、電話番号2の変数を利用する、あるいはリード追加項目で「電話番号」を作成するなど、好みの形式で変数を設定してください。25電話番号が検証済み(phone:phone_number_verified)電話番号が有効かどうか、にあたる項目です。リード追加項目で「電話番号が有効」を作成するなど、好みの形式で変数を設定してください。26フル住所(address:formatted)都道府県や市町村区、すべてが含まれる住所にあたる項目です。例:東京都港区三田3-13-16三田43MTビル[%address1%]、[%address2%]等の住所に関する項目を組み合わせたり、リード追加項目で「フル住所」を作成するなど、好みの形式で変数を設定してください。27番地、号室(address:street_address)番地、号室にあたる項目です。[%address2%]、[%address3%]のように町村番地、ビル・マンション名の変数を組み合わせたり、リード追加項目で「番地、号室」を作成するなど、好みの形式で変数を設定してください。28市町村区(address:locality)市町村区にあたる項目です。[%address1%]のように市区郡の変数を利用したり、リード追加項目で「市町村区」を作成するなど、好みの形式で変数を設定してください。29都道府県(address:region)都道府県にあたる項目です。リード追加項目で「都道府県」を作成するなど、好みの形式で変数を設定してください。(都道府県[%prefecture_master_id%]の変数はidを返却します)30郵便番号(address:postal_code)郵便番号にあたる項目です。[%zip1%]、[%zip2%]、[%zip3%]好みの形式で変数を設定してください。31国名(address:country)国名にあたる項目です。リード追加項目で「国名」を作成するなど、好みの形式で変数を設定してください。(国名[%country_master_id%]の変数はSMPの国名一覧にある、idを返却します)OIDC標準クレーム群で利用可能な変数については、クライアント登録・編集画面でも確認が可能です。これらの項目・値を連携先へ渡したあとは、お客様の好みに合わせてご利用ください。なお管理者の場合は自動的に下記の値で処理されます。No項目名既定値8フルネーム(profile:name)[%name1%][%name3%][%name2%]9名(profile:given_name)[%name2%]10姓(profile:family_name)[%name1%]11ミドルネーム(profile:middle_name)[%name3%]22メールアドレス(email:email)[%email%]24電話番号(phone:phone_number)[%tel%]変数についての詳細はクライアントを管理するをご確認ください。OpenIDConnectでの制限事項「制限事項」をご確認ください。
https://smpdoc.shanon.co.jp/ja/cooperation/ssoidp/chapter004/