Configuring Single Sign-On (SSO)
サービスアドミンはProtoPieエンタープライズ環境のSSOを設定することができます。SSOの設定により、メンバーは認証ソース(Okta、 Auth0またはOneLogin 等)を通じてProtoPieにアクセスが可能です。この認証ソースは識別提供者(IdP)ともいい、これを基にサービス管理者はアクセスするチームユーザーを簡単に識別することができ、アクセス方法の管理も容易になります。
SSOとは、ユーザーがユーザーネームやパスワードを何度も入力せずに、一組のIDとパスワードによる認証を一度行うだけでアプリやウェブサイトにログインできるようにする認証の仕組みです。既に多くの組織や企業では、全面的なセキュリティ及び利便性の確保のため、内部ポリシーにSSOを導入しています。
ProtoPieでは下記2種類のSSOプロトコルをサポートしています:
- SAML 2.0
- OAuth 2.0フレームワーク上のオープンID接続(OIDC)
Setting Up SAML SSO
SAML方式では、ProtoPieは認証方法のIDプロバイダー(IdP)を接続するサービスプロバイダー(SP)の役割をします。
設定するためには、IdPにProtoPieを追加する必要があります。この方法は、IdPによって異なりますが、基本的にはProtoPieから認証トークンを送信するSPのassertion consumer URLインターフェース(spAcsUrl)をIdPに入力し、IdPで得たIdP Metadata URLをProtoPieに入力します。
- サービスアドミンの設定画面から認証画面を選択します。
- SAMLを有効にします。
- assertion consumer URL(spAcsUrl)をコピーします。
IdPにアプリを追加する方法はIdPにより異なります。Oktaの場合は、下記の手順をご参照ください。
SAML SSO with Okta
ProtoPie School の簡単なビデオチュートリアルに従って Okta SSO を設定してください。
また、以下の説明に従って操作することもできます。
- Oktaにログインし、「Applications」ページに移動します。
- 画面左上の「Add Application」をクリックします。
- 画面右上の「Create New App」をクリックします。
- 表示される「SAML 2.0」を選択し、右下の「Create」をクリックします。
- 「General Settings」に移動し、app nameにProtoPieと入力します。ProtoPieロゴをアップロードすることも可能です。次に「Next」をクリックします。
- SAML設定のために以下を設定します。
- コピーしたAssertion Consumer Service URL(spAcsUrl)を、Single sign on URLとAudience URI(SP Entity ID)の入力欄に貼り付けます。
- Name ID formatでEmail Addressを選択します。
- NameにfirstName(姓)を入力し、Valueにuser.firstNameを入力した後、「Add Another」をクリックします。
- NameにlastName (名)を入力し、Valueにuser.lastNameを入力します。
- 「Next」をクリックします。
- I'm a software vendor. I'd like to integrate my app with Oktaを選択し、「Finish」をクリックします。
- Oktaでは、ユーザーにProtoPieアプリをアサインする必要があります。「ProtoPie application」に移動し、「Assignments」タブをクリックします。「Assign」ボタンをクリックして、ユーザーをアサインしてください。
- 「Sign On」タブをクリックしてから、「View Setup Instructions」をクリックします。
- Identity Provider Single Sign-On URLはSAML設定に必要なIdP Metadata URLと同様です。これをコピーします。
- サービスアドミンの設定画面から認証に戻ります。
- サービスアドミンの設定画面から認証に戻ります。
- IdPでコピーしたIdP Metadata URLを貼り付けます。
- 「Update」をクリックすれば設定は完了します。
SAML SSO with Another IdP
SAML SSO(その他のIdP)を設定するためには、Oktaと同じく、ProtoPieで生成したAssertion Consumer URL(spAcsUrl)とIdPで生成されたIdP Metadata URLが必要です。新しいアプリを追加する方法については、選択したIdPの設定方法をご参照ください。
SAML SSO with Azure AD
1. Azureにログイン後、Azure Active Directoryへアクセスします。
2. 左側のEnterprise applicationsを選択。
3. All applications → New applicationを選択。
4. Azure AD GalleryからAzure AD SAML Toolkitを検索、選択して作成します。
- NameにProtoPieを入力します。追加でProtoPie logoをアップロードすることもできます。
5. Applicationを作成した後は、以下のように作成されたApplicationのOverviewを確認することができます。その後、Getting Startedメニューから設定を完了することができます。
6. Assign users and groupsメニューを選択し、ユーザーまたはユーザーグループを設定します。
7. Set up single sign onメニューを選択し、SSO設定を開始します。ここでSAML methodを選択します。
8. Basic SAML Configuration Editを選択し、値を入力します。設定する値は以下の通りです。
- Identifier (Entity ID):
https://PROTOPIE_DOMAIN/sp
- Reply URL (Assertion Consumer Service URL):
https://PROTOPIE_DOMAIN/api/auth/callback/sso/saml
- この値は、
ProtoPie Admin Dashboard → Authentication → SAML → Assertion Consumer URL
の値と同じです。
- この値は、
- Sign on URL:
https://PROTOPIE_DOMAIN/api/auth/login/sso/saml
9. SAML Signing CertificateのApp Federation Metadata URL
値をコピーします。
10. ProtoPie Admin DashboardのAuthentication → SAMLメニューからSAMLを有効にし、以下の値を入力します。
- Authn Context:
urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
- IdP URL (IdP Metadata URL): 上記でコピーしたApp Federation Metadata URL値を入力します。
Setting Up OIDC SSO
ProtoPie School のこの簡単なビデオチュートリアルに従って、OIDC SSOをセットアップしてください。
または、次の手順に従うこともできます。
オープンID接続(OIDC)とは、OAuth 2.0フレームワーク上に構築された認証プロトコルのことをいいます。
設定するためには、IdPにProtoPieを追加する必要があります。この方法は、IdPによって異なりますが、ProtoPieで生成されたcallback URL(loginUrl)をIdPに入力し、IdPで生成された認証URL、token URL、client ID、及びclient SecretをProtoPieに入力してください。
- サービスアドミンの設定画面から認証画面を選択します。
- OIDCを有効にします。
- Callback URL(loginUrl)をコピーします。
IdPにアプリを追加する方法は、IdPによって異なります。Oktaを使用する場合は以下の手順に従ってください。
OIDC SSO with Okta
- Oktaにログインし、「Applications」ページに移動します。
- 画面左上の「Add Application」をクリックします。
- 画面右上の「Create New App」をクリックします。
- Sign on methodとしてOpen ID Connectを選択して、Createをクリックしてください。
- General Settingsに移動し、app nameにProtoPieを入力します。ProtoPieロゴをアップロードすることもできます。コピーしたCallback URL(loginUrl)をLogin redirect URIs入力欄に貼り付け、「Save」をクリックします。
- Oktaでは、ProtoPieアプリにユーザーをアサインする必要があります。「ProtoPie application」に移動し、「Assignments」タブをクリックします。「Assign」ボタンをクリックして、ユーザーをアサインします。
- Generalタブをクリックし、Client IDとClient secretの両方をコピーしてください。
- 「Sign On」タブをクリックします。authorization URLとtoken URLの両方が必要です。これら二種類のURLは、IdPによって異なります。Oktaの場合、authorization URLは ${baseUrl}/oauth2/v1/authorize、token URLは${baseUrl}/oauth2/v1/token です。base URLの場合、「OpenID Connect ID Token」のIssuer値を使用してください。base URLを構成する方法についてはこちらをご参照ください。
- サービスアドミンの設定画面から認証に戻ります。
- OIDCをチェックして有効にします。
- 「Update」をクリックします。
- 「Update」をクリックします。
OIDC SSO with Another IdP
OIDC SSO(その他のIdP)を設定するためには、Oktaと同じく、ProtoPieで生成したcallback URL(loginUrl)、および client IDとclient secretが必要です。新しいアプリを追加する方法については、選択したIdPの設定方法をご参照ください。
Managing Members
SSOを有効化してもメンバーの管理はProtoPieエンタープライズ画面にて行う必要があります。IdPからメンバーを追加または削除をしても、ProtoPieエンタープライズには自動的に更新されません。IdPにてユーザーのメールアドレスを変更した場合にはProtoPieエンタープライズの管理画面でも同様の更新作業を行って下さい。
FAQs
Email&Passwordの代わりにSSOだけ使ってもいいですか?
2つの認証方式の中から選ぶことはできます。ただし、両方を無効化することはできません。Email&PasswordかSSOのうち、どちらかは有効にする必要があります。
SSO 認証方式のみを有効にするためには、設定を変更するService AdminがSSO方式でログインできなければなりません。システムの初期設定のままService AdminがEmail&Passwordのみとなっている場合、以下の手順をご参考ください。
- Service Adminに設定する新しいユーザーを招待する
- 当該ユーザーはSSO認証方式を使って登録する
- 招待したユーザーをService Adminに指定する
- 当該ユーザーでログインしてからEmail&Password認証方式を無効化する
- (Optional)既存のService Adminの役割をmemberに変更する
メンバーの管理は、ProtoPie EnterpriseではなくIdPを利用すべきでしょうか?
いいえ。IdPでユーザーを追加、または削除してもProtoPie Enterpriseに自動反映されるわけではありません。
IdPでメールアドレス変更しても、ProtoPieにログインできますか?
IdPとProtoPie Enterpriseに登録したメールアドレスが同一である場合のみ、同じユーザーとしてで認識されます。そのため、IdPでメールアドレスを変更した場合、ProtoPieで同じくアドレスに変更する必要があります。
Service Adminが一律的に全メンバーのメールアドレスを変更する際には、以下の手順をご参考ください。
- Service Adminのアカウントを除いた全てのメールアドレスをIdPで変更する
- Service AdminがProtoPieのAdmin Dashboardで全てのメールアドレスを変更する
- Service AdminがAccount Setting -> Profileで自分のメールアドレスを変更する
- 変更したいメールサービスにアクセスして受信した変更メールを確認すると、メールアドレス変更が完了
重要: Service AdminもSSOログイン方式となっている場合、当該の手順を行ってから、ログインする前にIdPでメールアドレスを変更する。
SSOを利用して会員登録しましたが、Email/Passwordでもログインできますか?
Email/Password가 Enable 되어 있지 않다면, 이를 이용한 로그인은 불가합니다. Service Admin Settings의 Authentication에서 Email/Password를 Enable한 후 로그인이 가능합니다. 이후에, 멤버들은 Account Settings에서 각자 비밀번호를 설정할 수 있습니다.
ProtoPieに会員登録しましたが、First NameとLast NameがIdPと異なります。
SAMLもしくはOIDCを利用して会員登録する際、IdPにFirst NameとLast Nameを自動で読み込みます。
- SAMLで、情報が正しく表示されない場合は、IdPのSAML Settingをご確認ください。
- OIDCで、情報が正しく表示されない場合は、IdPでご確認ください。
ProtoPie EnterpriseではSingle Logout(SLO)に対応していますか?
現在、ProtoPie EnterpriseではSingle Logout(SLO)に対応していません。
エンティティIDの値とは何ですか?
エンティティIDとは、SAMLエンティティ、つまりIDプロバイダー(IdP)またはサービスプロバイダー(SP)を世界共通で言い表す一意の名称です。エンティティIDは名前であり、解像可能なウェブ上の位置とは限りません。SAMLエンティティIDはURIでなければなりません。
ProtoPie Enterpriseでは、以下のような形式に従います。(ACS URL)
- エンタープライズクラウド: https://sample.protopie.cloud/api/auth/callback/sso/saml
- エンタープライズオンプレミス: {PROTOPIE_HOST}/api/auth/callback/sso/saml
証明書データはどこで取得できますか?
ProtoPie(SP)では現在、証明書データ(X.509証明書)を提供していません。
ProtoPieサービスは、IdPから提供されたメタデータを読み込み、メタデータにX.509証明書が存在する場合はそれを利用します。存在しない場合は、ACS URLとして受け取ったSAMLレスポンスから、署名のX.509証明書を取得します。
ACS URLはどこで取得できますか?
ProtoPie(SP)が提供するACS URLは、アドミンダッシュボードで「Assertion Consumer URL」として確認できます。
AuthnContext(AuthnContextClassRefと同じ)とは?
SAMLリクエストでの、SPがIDPに特定の認証メカニズムでユーザーを認証するように要求する手段のことです。これは任意であり、IdPの設定オプションによります。また、IdP管理者の承認が必要です。
主に次のような値が使用されます(X509、未指定など)。
- urn:oasis:names:tc:SAML:2.0:ac:classes:X509
- urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified