# 組織レベルの SSO

組織内のすべてのアカウントのシングルサインオン (SSO) を管理できます。

ビジネスが複数の Stripe アカウントで運営されていて、ユーザーの認証にシングルサインオン (SSO) を使用している場合は、 Stripe 組織で SSO を一元的に設定できます。すでに SSO が組織に設定されているアカウントを追加することも、組織の作成後にすべてのアカウントに SSO を設定することもできます。

Stripe で初めて SSO を設定するには、Stripe の[シングルサインオン](https://docs.stripe.com/get-started/account/sso.md)をご覧ください。

## SSO を使用して設定したアカウントを組織に追加する

SSO が設定されているアカウントが複数ある場合でも、組織内で個々の SSO 設定を保持することはできません。1 つの認証アプリに[複数の認証アプリを統合](https://docs.stripe.com/get-started/account/orgs/sso-consolidation.md)する必要があります。

組織を作成すると、Stripe はアカウントの SSO 設定を組織の[シングルサインオン](https://dashboard.stripe.com/org/settings/security/sso) 設定に統合します。このアクションにより、各個人アカウントの SSO 設定が読み取り専用に更新されます。個人アカウントにログインすることはできますが、確認済みドメインや適用などの設定は組織からのみ編集する必要があります。

SSO を使用して組織を設定したら、組織の SSO 設定を共有するアカウントを追加できます。組織が SSO を **オプション** に設定している場合、SSO を使用しないアカウントも追加できます。別途 SSO 認証を行うアカウントを追加することはできません。

## 組織全体で SSO を設定する

各アカウントで個別に SSO を設定するのではなく、組織のすべてのアカウント全体で SSO を一元的に設定できます。組織レベルで確認済みのドメインまたは SSO 設定は、組織内のすべてのアカウントに適用されます。

### 各ドメインの SSO 設定

確認済みのドメインごとに個別の SSO 設定を行うことも、同じ SSO 設定を複数のドメインに再利用することもできます。たとえば、同じ組織内で、1 つのドメインで SSO を必須にし、別のドメインでは SSO を**任意**に設定したり、全体的に無効にしてメールアドレスとパスワードによるログインを有効にしたりすることができます。

### 複数のアイデンティティープロバイダー

Stripe では、確認済みドメインごとの IdP が 1 つのみである場合に複数の IdP を使用できます。たとえば、`rocketrides.com` メールアドレスを使用するユーザーが Okta で認証するように設定したり、`rocketdelivery.com` メールアドレスを使用するユーザーが Entra ID で認証するように設定できます。

## アカウントレベルの役割と組織レベルの役割を割り当てる

組織レベルの SSO は、1 つのアカウント内の SSO と同様に動作します。Stripe は IdP から SAML アサーションを受け取ると、その SAML アサーション内で指定されたアカウントと役割を調べます。この情報に基づいて、Stripe はユーザーに役割を割り当てます。単一のアカウントレベルの役割、単一の組織レベルの役割、またはアカウントレベルと組織レベルの両方の役割の組み合わせを割り当てることができます。

これらの役割を割り当てる際は、アカウント ID には `Stripe-Role-{accountID}`、組織 ID には `Stripe-Role-{org-id}` のプレフィックスを使用します。アカウントレベルのアカウント ID を含むクレームと、組織レベルの組織 ID を含むクレームを割り当てます。[アカウントレベルと組織レベルの役割](https://docs.stripe.com/get-started/account/orgs/team.md)の詳細をご確認ください。

以下の SAML アサーションのスニペットでは、ユーザーに対して 3 つのクレームが行われています。

1. `acct_ONE` では、ユーザーに `developer` 役割が割り当てられます
1. `acct_TWO` では、ユーザーに `developer` 役割が割り当てられます
1. `org_ALPHA` では、ユーザーに `view-only` 役割が割り当てられます

これらのアサーションの結果として、Stripe はこのユーザーに、`acct_ONE` アカウントと `acct_TWO` アカウントでの `developer` の役割を持つセッションを許可します。さらに、`org_ALPHA` 組織とその組織内のすべてのアカウントで `view_only` の役割を割り当てます。

```
      <saml2:Attribute Name="Stripe-Role-acct_ONE" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
        <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">developer</saml2:AttributeValue>
      </saml2:Attribute>
      <saml2:Attribute Name="Stripe-Role-acct_TWO" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
        <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">developer</saml2:AttributeValue>
      </saml2:Attribute>
      <saml2:Attribute Name="Stripe-Role-org_ALPHA" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
        <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">view_only</saml2:AttributeValue>
      </saml2:Attribute>
    </saml2:AttributeStatement>
```
