シングル サインオン(SSO) [ベータ版]

注: SSO は Super Awesome サポートを受けるクライアントのみ利用可能です。

重要な注意事項

SSO はベータ版機能のままです。

SAML2 をサポートする ID プロバイダ(IdP)であれば、理論的には Shotgun で動作します。以下は問題なく使用できます。

  • ADFS
  • PingIdentity
  • Okta
  • OneLogin

現時点では、NTLM はサポートされていません

iOS レビュー アプリは、現時点で SSO ログインをサポートしていません

サイトで SSO を使用すると、次の影響があります。

  • スタジオで RV を使用する場合は、RV (7.2.0 以降)の更新バージョンが必要です。
  • Shotgun Desktop または Toolkit を使用する場合は、SSO をサポートするバージョンに更新する必要もあります。オンボーディング プロセスでは必要な開始スクリプトを提供します。
  • shotgun_api3 python モジュールを使用する場合は、新しいセッションの作成に user_login/user_password pair メソッドを使用できなくなります。

管理者として、[サイト基本設定](Site Preferences) > [認証](Authentication)にあるシングル サインオン(SSO)設定にアクセスできます。 Shotgun サポート担当者がお客様のサイトで Shotgun を使用できるようにしないと、このオプションは表示されません。この機能はまだベータ版であるため、通常は Shotgun 管理者および SSO 管理者とのミーティングで始まる、クライアントとのオンボーディング プロセスが行われます。

SSO を有効にした後の最初のログインで、組織のユーザ名とパスワードの入力を求めるプロンプトが表示されます。

SSO

SSO は Shotgun と RV の両方で動作します。

RV の SSO

SSO が有効の場合、RV ユーザが SSO を使用せずにサインインすると、エラー メッセージが表示されます。

RV エラー メッセージ

SSO を使用する

ユーザとして、SSO を介してログインすると、Shotgun サイトが同じように表示されます。ただし、組織のログインに応じてユーザ名が異なる場合があります。

管理者として、次の内容が変更されます。

  • ユーザ パスワードをリセットできなくなります。スタジオの IT 部門が管理します。
  • 組織で別のユーザ名を発行しない限り、さまざまなユーザ名を使用できなくなり、独自のアカウントでしか Shotgun をテストできなくなります。
  • ユーザはログイン時に作成されます。Shotgun でこのログイン ID のユーザがまだ登録されていない場合は、このユーザが作成されます。既存のユーザ名を変更すると、重複するユーザが作成される可能性があります。
  • ユーザの名、姓、氏名、または電子メールを変更しても、ユーザのログイン時にこれらのフィールドはリセットされます。これは、これらの情報は組織の IT 部門が管理しているためです。
  • 組織の IT 部門が、新しいユーザと既存のユーザのサイトへのアクセスを許可する必要があります。
  • 新しいユーザを招待して、サイトの新しいユーザを作成できます。Shotgun が招待メールを送信するため、SSO アカウントを使用してサインインすることができます。
    • Shotgun にユーザを招待する
    • Shotgun でユーザを作成する

SSO は Shotgun サイトに次の機能を提供します。

  • 権限の一括管理
  • SSO システムによる Shotgun へのアクセスの許可と取り消し
  • SSO システムと Shotgun の間の名前や電子メールなどのユーザ情報の同期化

環境設定

SSO を有効にするには、最小限の環境設定が必要です。

注: SSO は Security Assertion Markup Language (SAML)認証を使用します。SAML をすべて設定およびテストするまで有効にしないでください。
    1. SAML 認証の基本的なパラメータを設定します (詳細については、http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf の第 8.3.6 章を参照)。
      1. 公開証明書: 要求の暗号化と復号化に使用されます。
      2. SAML 2.0 エンドポイント(HTTPS): 資格情報を検証するために接続します。たとえば、「https://single.login.url」です。
      3. ID プロバイダ発行者: サービスで使用する ID です。
    2. テスト ボタンをクリックして SAML 認証をテストします。
      SAML をテストする
      ログインできるかどうかを確認するために、新しいタブを受け入れます。
    3. テストが成功した場合は、認証方法を[SAML 認証](SAML Authentication)に設定します。
      SAML 認証に設定する

他のオプション

YAML 設定はこの記事の最後で説明します。

SSO の有効化と無効化

管理者は SSO の有効化と無効化を切り替えられます。SSO の有効化と無効化を切り替えると、電子メールを受信します。

SSO の有効化

SSO を無効にしても、以前の Shotgun のユーザ名とパスワードを使用することができます。

SSO の無効化

SSO の有効化以前に Shotgun アカウントを持っていなかった場合は、パスワードをリセットするための電子メールを受信します。

パスワードをリセットする

SAML2 の設定

協定

Active Directory SAML2 応答で 5 つのアトリビュートを指定する必要があります。

名前 タイプ 状態 詳細
login_id 文字列 必須 ユーザが Shotgun で使用する ID です。これは Shotgun 内で一意である必要があります。
firstname 文字列 必須 ユーザの名です。
lastname 文字列 必須 ユーザの姓です。
email 文字列 必須 ユーザの電子メール アドレスです。
access 文字列: true/false 必須 「true」の場合、ユーザは Shotgun にアクセスできます。
groups 文字列 オプション 

存在しない場合、または空の場合は、ユーザの権限グループは現在の値から変更されません。新しいユーザの場合は、[サイト基本設定](Site Preferences)で定義されている既定のユーザ権限グループが使用されます。

存在する場合は、Shotgun で定義された権限グループの 1 つの名前に対応する必要があります。名前が一致しない場合、ユーザには既定のユーザ権限グループが付与されます。

例:「Admin」

セッション期間は SAML 応答に基づいています。

  • saml:AuthnStatement にフィールド SessionNotOnOrAfter が含まれる場合、このフィールドはセッションの期間を示します。
  • それ以外の場合は、saml:Conditions フィールドの NotOnOrAfter がセッション期間を示します。

セッションの終了時、更新する際に資格情報の入力を求められる場合があります。

次に、Shotgun の有効な SAML 応答例を示します (関連フィールドが削除されています)。

SAML2 応答:

[...]
        <saml:Subject>
            <saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
                         NameQualifier="https://your.sso-service.com/saml2"
                         SPNameQualifier="https://your.site.com/saml/metadata"
                         >ziP0wDQy0yS1kFg8DmyzqQpaD0a</saml:NameID>
            <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                <saml:SubjectConfirmationData Recipient="https://your.site.com/saml/saml_login_response"
                                              NotOnOrAfter="2017-01-23T16:53:01.292Z"
                                              InResponseTo="_8fde3e06-9c0b-4c55-bf14-85e82aef9e4b"
                                              />
            </saml:SubjectConfirmation>
        </saml:Subject>
        <saml:Conditions NotBefore="2017-01-23T16:48:01.292Z"
                         NotOnOrAfter="2017-01-23T16:53:01.292Z"
                         >
        </saml:Conditions>
[...]
        <saml:AttributeStatement>
            <saml:Attribute Name="login_id"
                            NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                            >
                <saml:AttributeValue xsi:type="xs:string"
                                     xmlns:xs="http://www.w3.org/2001/XMLSchema"
                                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                     >a_username</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="firstname"
                            NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                            >
                <saml:AttributeValue xsi:type="xs:string"
                                     xmlns:xs="http://www.w3.org/2001/XMLSchema"
                                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                     >a_firstame</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="access"
                            NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                            >
                <saml:AttributeValue xsi:type="xs:string"
                                     xmlns:xs="http://www.w3.org/2001/XMLSchema"
                                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                     >true</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="groups"
                            NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                            >
                <saml:AttributeValue xsi:type="xs:string"
                                     xmlns:xs="http://www.w3.org/2001/XMLSchema"
                                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                     >Admin</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="email"
                            NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                            >
                <saml:AttributeValue xsi:type="xs:string"
                                     xmlns:xs="http://www.w3.org/2001/XMLSchema"
                                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                     >a_user@your.site.com</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="lastname"
                            NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                            >
                <saml:AttributeValue xsi:type="xs:string"
                                     xmlns:xs="http://www.w3.org/2001/XMLSchema"
                                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                     >a_lastname</saml:AttributeValue>
            </saml:Attribute>
        </saml:AttributeStatement>
    </saml:Assertion>
</samlp:Response>

暗号化と他のオプション

暗号化

ID プロバイダ(IdP)からの呼び出しはすべて、証明書で暗号化されます。既定では、IdP への呼び出しはすべて暗号化されません。YAML で最適なオプションを指定すると、暗号化を強制できます。

YAML の追加設定

追加の設定を入力するには、SSO 設定(YAML フォーマット)編集ボックスを使用します。

その名前で定義されるとおり、適切なセクションのヘッダを含む YAML フォーマットを使用する必要があります。

次に、追加の暗号化とシングル ログアウト(SLO)設定の例を示します。

暗号化:

service_provider:
  private_key: "KEY" #the key used for encryption
security:
  authn_requests_signed: false # authorisation requests are encrypted
  logout_requests_signed: false # logout requests are encrypted
  logout_responses_signed: false # logout responses are encrypted

シングル ログアウト:

identity_provider:
  slo_target_url: "https://single.logout.url"

更新で一部のフィールドを無視:

ignore_updates: 
-
email
- firstname

自動プロビジョニング(既定は true):

autoprovision: false

SSO アクティブ時の電子メール送信をスキップ(既定は false):

skip_activation_email: true

セカンダリ ブラウザ ウィンドウを使用してユーザ資格情報を更新(既定は false):

saml_claims_renew_iframe_embedding_disabled: true
フォローする

0 コメント

ログインしてコメントを残してください。