ZendeskはSAML(Secure Assertion Markup Language)をサポートしており、Zendeskアカウントにシングルサインオン(SSO)アクセスを提供できます。SSOを使用すると、ユーザーは会社のサインインフォームを使用して一度サインインすることで、Zendesk製品を含む複数のシステムとサービスプロバイダにアクセスできます。
SAMLシングルサインオンは、チームメンバーのみ(ライトエージェントと閲覧担当を含むエージェントおよび管理者)、エンドユーザーのみ、または両者を対象として有効にすることができます。
Zendesk管理者としての役割は、SAML SSOオプションを有効にすることです。次のトピックをご覧ください。
- ZendeskでのSAML SSOの動作
- SAML SSOを有効にするための要件
- SAML SSOを有効にする
- SAML SSOをユーザーに割り当てる
- SAML SSOを有効にした後でZendesk内のユーザーを管理する
- 認証方法を切り替える
会社のSAML認証システムの設定と管理は、通常は会社のITチームが担当します。ITチームの役割は、システムにZendesk向けSSOを実装することです。ITチームに、この記事内の以下のトピックをご紹介ください。
SAMLシングルサインオンはすべてのプランで利用できます。シングルサインオンは、JWTリモート認証を使って設定することもできます。「JWT(JSON Webトークン)シングルサインオンの有効化」を参照してください。
ZendeskでのSAML SSOの動作
Zendesk対応のSAMLの動作は、SAMLがほかのすべてのサービスプロバイダで動作する場合と同じです。よくあるユースケースは、ユーザー認証をすべてActive DirectoryやLDAPなどの企業認証システム(一般にIDプロバイダまたはIdPと呼ばれます)で管理している会社です。ZendeskはIdPとの信頼関係を確立し、ユーザーの認証を許可して、Zendeskアカウントにサインインさせることができます。
よくあるユースケースとして、ユーザーが1日の始業時に会社のシステムにサインインする場合があります。いったんサインインすると、それ以降はサインインを求められることなく、他の社内アプリケーションやサービス(メールやZendesk Supportなど)にアクセスすることができます。
ユーザーがZendeskアカウントに直接サインインしようとすると、認証のためにSAMLサーバーまたはサービスにリダイレクトされます。認証されたユーザーは、Zendeskアカウントにリダイレクトされ、自動的にサインイン状態になります。
サポートされているもう1つのワークフローでは、ユーザーが社内のWebサイトにサインインした後に、Zendeskへのアクセス許可を与える方法です。ユーザーがWebサイト認証情報を使用してWebサイトにサインインした場合、ユーザーの検証を求めるリクエストがIDプロバイダに送られます。その後、プロバイダからの応答がSAMLサーバーに送信され、SAMLサーバーから応答がZendeskアカウントに転送されて、ユーザーにZendeskのセッションが割り当てられます。
SAML SSOを有効にするための要件
SAML認証システムを担当している社内のチーム(通常はITチーム)と話し合い、自社が次の要件を満たしていることを確認してください。
-
会社にSAMLサーバーと、プロビジョニングされたユーザーまたはMicrosoft Active DirectoryやLDAPなどのIDリポジトリがある。その他の選択肢として、OpenAMなどの社内SAMLサーバー、Okta、OneLogin、PingIdentityなどのSAMLサービスを使用している。
-
Active Directoryフェデレーションサービス(ADFS)サーバーを使用する場合は、フォームベースの認証を有効にする必要があります。ZendeskはWindows統合認証(WIA)をサポートしていません。詳しくは、「Active Directoryを使用したADFSおよびSAMLシングルサインオンの設定」を参照してください。
- Zendeskから送信されるトラフィックはHTTPではなくHTTPS経由です。
- SAMLサーバーのリモートログインURL(SAMLシングルサインオンURLと呼ばれることもある)
- (オプション)ユーザーがZendeskからサインアウトした後に、ZendeskがユーザーをリダイレクトするページのログアウトURL
- (オプション)ユーザーを適切なサインインオプションにリダイレクトするためのIPアドレス範囲のリスト。指定されたIPアドレス範囲から要求を行ったユーザーは、リモートSAMLの認証サインインフォームにルーティングされます。指定されたIPアドレス範囲外から要求を行ったユーザーは、通常のZendeskのサインインフォームにルーティングされます。アドレス範囲を指定しないと、すべてのユーザーがリモート認証のサインインフォームにリダイレクトされます。
- SAMLサーバーから取得したSAML証明書のSHA2フィンガープリント。X.509証明書がサポートされます。DER形式またはPEM形式のファイルを使用します。SHAフィンガープリントのサイズに、上限は設定されていません。
次のステップでは、Zendesk管理センターで情報を入力してSSOを有効化します。「SAML SSOを有効にする」を参照してください。
ITチームが、ZendeskからSAML実装を設定するための追加情報を必要とする場合があります。その場合は、この記事の実装のためのテクニカルワークシートを参考にしてもらってください。
SAML SSOを有効にする
SAMLシングルサインオンは、エンドユーザーのみ、エージェントのみ(ライトエージェントと閲覧担当を含む)、または両方のグループに対して有効にすることができます。JWTとSAMLの両方を使用している場合は、プライマリ認証方法として、どちらか1つを選択する必要があります。Zendeskにサインインすると、ユーザーはプライマリサインインページにリダイレクトされます。セカンダリサインインページに移動し、セカンダリの認証方法を使ってサインインすることもできます。詳細については、「エージェントとエンドユーザーに異なるSAMLおよびJWT SSO(シングルサインオン)を使用する方法」を参照してください。
設定を開始する前に、必要な情報を会社のITチームから入手します。「SAML SSOを有効にする要件」を参照してください。
SAMLシングルサインオンを有効にするには、Zendeskに管理者としてサインインしている必要があります。
SAMLシングルサインオンをZendeskで有効にするには
- 管理センターで、サイドバーにあるアカウントアイコン(
)をクリックし、「セキュリティ」>「シングルサインオン」を選択します。
- 「SAML」で「設定」をクリックします。
- 「SAML SSO URL」で、SAMLサーバーのリモートログインURLを入力します。
- 「証明書フィンガープリント」を入力します。これは、SAMLサーバーとの通信のために必要です。
- (オプション)「リモートログアウトURL」には、ZendeskからサインアウトしたユーザーがリダイレクされるページのログアウトURLを入力します。
- (オプション)「IPアドレス範囲」には、ユーザーを適切なサインインオプションにリダイレクトするためのIPアドレス範囲を列挙して入力します。
指定されたIPアドレス範囲から要求を行ったユーザーは、リモートSAMLの認証サインインフォームにルーティングされます。指定されたIPアドレス範囲外から要求を行ったユーザーは、通常のZendeskのサインインフォームにルーティングされます。すべてのユーザーがリモート認証のサインインフォームにリダイレクトしたい場合は、アドレス範囲を指定しないでください。
- SAML SSOを設定したら「有効」をクリックして、このオプションをユーザーに割り当てられるようにします。
- 「保存」をクリックします。
SAML SSOをユーザーに割り当てる
SAML SSOオプションを設定したら、エンドユーザーまたはチームメンバー、あるいはその両方に割り当てます。
- チームメンバーまたはエンドユーザーのセキュリティ設定を開きます。
- SAML SSOをチームメンバーに割り当てる場合は、「外部認証」を選択して、認証オプションを表示します。
これらのオプションは、すでにエンドユーザーに表示されています。
- 「外部認証」セクションで「SAML」を「シングルサインオン」オプションとして選択します。
エンドユーザーの場合、SSOオプションを選択すると、Zendesk認証オプションが自動的に選択解除されます。チームメンバーの場合、シングルサインオンですべてのユースケースがカバーされるわけではないため、両方の認証方法を使用することを選択できます。たとえば、さまざまなZendeskインテグレーションからSupportアカウントにアクセスしたり、Zendesk APIやAppsフレームワークを使用したりする場合には、Zendeskパスワードが要求されます。
- すべてのユーザーにシングルサインオン方式のみを使用させる場合は、Zendesk認証オプションの選択を解除します。
すべてのZendeskパスワードが、24時間以内にアカウントから完全に削除されます。
- 「保存」をクリックします。
- Zendeskのパスワードを無効にした場合、「詳細」>「認証」をクリックして、「SSOを使用しない」を選択します。
サインインプロバイダーがダウンした場合に、アカウントへのアクセスをアカウントオーナーのみに許可するか、すべての管理者(アカウントオーナーを含む)に許可するかを選択できます。
アクセス権を取得するには、アカウントオーナーまたは管理者は、ワンタイムアクセスリンクを含むメールの受信をリクエストします。リンクをクリックすると、アカウントへのアクセス権が付与されます。パスワードは必要ありません。「パスワードが無効になっている場合にアカウントにアクセスする」を参照してください。
- 「保存」をクリックします。
SAML SSOを有効にした後でZendesk内のユーザーを管理する
ZendeskでSAMLシングルサインオンを有効にした場合、Zendesk外でユーザーに加えられた変更がZendeskアカウントと同期されます。たとえば、社内のActive DirectoryまたはLDAPシステムにユーザーを追加すると、そのユーザーは自動的にZendeskアカウントにも追加されます。社内システムから削除されたユーザーはZendeskにサインインできなくなりますが、Zendesk内にアカウントは残されます。
デフォルトでは、シングルサインオンが有効になっている場合にZendeskに保存される唯一のユーザーデータは、ユーザーの姓名とメールアドレスです。Zendesk内にパスワードは保管されません。このため、パスワードに関するZendeskからの自動メール通知はすべて無効にする必要があります。「Zendeskからのパスワード通知メールを無効にする」を参照してください。
より良いカスタマーエクスペリエンスを提供するために、ユーザーの名前とメールアドレス以外の情報もZendeskに保存することができます。「追加のユーザーデータを取得する」を参照してください。
Zendeskからのパスワード通知メールを無効にする
ユーザーをZendeskアカウントに追加すると、メールアドレスの確認と、ユーザー名とパスワードの作成を求めるメール通知がユーザーに届く場合があります。
SAMLを使用してZendeskアカウントにアクセスしたすべての新規ユーザーに、ユーザープロフィールが作成されます。これらのユーザーはZendesk以外のパスワードによって認証されるため、Zendeskにサインインする必要がありません。このため、パスワードなしでプロフィールが作成されます。ただし、デフォルトでは、すべての新規ユーザーに、メールアドレスを確認し、ユーザー名とパスワードを指定するように求める通知が届いてしまいます。
- 管理センターで、サイドバーにあるメンバーアイコン(
)をクリックし、「設定」>「エンドユーザー」を選択します。
- 「アカウントメール」セクションの「エージェントまたは管理者によって新規ユーザーが登録されたときにも登録完了通知メールを送信する」
- 「ユーザーが各自のパスワードを変更できるようにする」で、このオプションをオフにします。
追加のユーザーデータを取得する
Zendeskが認証システムに求めるユーザーデータは、ユーザーの姓名とメールアドレスだけです。ユーザーの名前に関する情報を取得するために使用する必要がある属性名は、名前と姓だけです。ただし、ITチームに、サインイン時にIDプロバイダがZendeskに送信するSAMLアサーションへのユーザー属性の追加を依頼することで、より多くのデータを取得できます。
SAMLアサーションには、ユーザーに関する文が1つ以上含まれています。ユーザーがアクセスを許可されているかどうかにかかわらず、承認を決定する文は1つだけです。他の文に、サインインしたユーザーの詳細を示す属性を含めることができます。
Zendeskは、サインインしたユーザーについて、次の追加のユーザー属性をサポートしています。Supportでデータ要件を定義し、ITチームと、SAMLアサーションにユーザー属性を追加する方法について話し合います。
属性 | 説明 |
---|---|
organization | ユーザーが所属する組織の名前またはID。組織のexternal_id属性は、サポートされません。組織がZendeskに存在しない場合、作成されません。ユーザーは作成されますが、どの組織にも追加されません。 |
organizations | カンマ区切りで値を列挙。例:org1 , org2 , org3
|
organization_id | 例:134211213
|
organization_ids | カンマ区切りで値を列挙。例:23423433, 234324324,
23432
|
ou | 組織単位の名前。organization 属性として指定します。 |
phone | 文字列として指定された電話番号。 |
tags | ユーザーに設定されているタグ。これらのタグは、ユーザープロフィール内にすでにタグがある場合、それらのタグを上書きします。 |
remote_photo_url | ユーザープロフィールに設定される写真のURL。 |
locale(エージェントの場合) locale_id(エンドユーザーの場合) |
数値で指定するZendesk内のロケール。有効な数値のリストを入手するには、APIドキュメントで「Locales(ロケール)」を参照してください。 |
role | ユーザーのロール。end-user、agent、またはadminを設定できます。デフォルトはend-userです。 |
custom_role_id | role属性がagent以上の場合にのみ、適用されます。カスタムロールのIDは、カスタムロールAPIを使用して取得できます。 |
external_id | メールアドレス以外の属性が特定されていて、メールアドレスがよく変わるユーザーの場合に、システムから持ってくるユーザーID。文字列として指定します。 |
user_field_<key> | Zendesk Supportのカスタムユーザーフィールドの値。「ユーザープロフィールへのカスタムフィールドの追加」を参照してください。<key>は、Zendesk Supportのカスタムユーザーフィールドに割り当てられたフィールドキーです。例:user_field_employee_number 。ここで、employee_number はZendeskのフィールドキーです。属性値にnull値または空の文字列を送信すると、Zendesk Supportで設定されているカスタムフィールドの値が削除されます。
|
また、Zendeskでは一連のInCommon Federation Attributesをサポートし、サインインの一部にユーザー属性を設定します。フェデレーション属性には、表示名ではなく属性名を使用して、完全な名前空間を指定する必要があります。以下はその例です。
表示名 | SAML2の名称 |
---|---|
ou (organization unit) | urn:oid:2.5.4.11 |
displayName | urn:oid:2.16.840.1.113730.3.1.241 |
認証方法を切り替える
実装のためのテクニカルワークシート
このセクションは、SAML認証システムを担当する社内のチームを読者として想定しています。このセクションで、Zendesk SAML SSO実装について詳しく説明します。
次のトピックについて説明します。
認証対象のユーザーを識別するために必要なユーザーデータ
ZendeskアカウントへのSAML SSOアクセスを実装する際には、特定のユーザーデータを指定して、認証対象のユーザーを識別します。
次のトピックでは、入力が必要とされるデータについて説明します。
SAMLサブジェクトの名前IDでのユーザーのメールアドレスを指定する
SAMLサブジェクトの名前IDには、ユーザーのメールアドレスを指定します。
概念 | 指定する場所 | 説明 | 例 |
---|---|---|---|
|
サインインするユーザーのメールアドレス。Zendesk内のユーザーを一意に識別します。 | stevejobs@apple.com |
メールアドレスの例:
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">stevejobs@apple.com</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2014-04-23T21:42:47.412Z"/>
</saml:SubjectConfirmation>
</saml:Subject>
givenname属性とsurname属性が指定されていない場合、Zendeskは
要素で指定されたメールアドレスのユーザー名をユーザー名として使用します。メールアドレスの「@」記号の前の部分がユーザー名です。メールアドレスのユーザー名にピリオド記号が含まれている場合は、それを使用して名と姓を解析します。ピリオド記号がない場合は、ユーザー名全体がZendeskのユーザー名になります。
内のメールアドレス |
Zendesk内で認証されたユーザーの名前 |
---|---|
Stanley.Yelnats@example.com | Stanley Yelnats |
Stanleyyelnats@example.com | Stanleyyelnats |
SAMLアサーションで2つの必須ユーザー属性を指定する
ユーザー属性のgivennameおよびsurnameを指定する場合は、完全な名前空間を使用して属性を指定する必要があります。たとえば、表示名が「surname」の場合、属性に使用する必要がある実際の値はhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/surnameとなります。
概念 | 属性 | 説明 | 例 |
---|---|---|---|
名 | givenname | ユーザーの名。この属性の完全な名前空間を指定する必要があります。 |
|
姓 | surname | ユーザーの姓。Zendeskのユーザーは、このユーザーの名と姓にもとづいて作成または更新されます。以下の例を参照してください。この属性の完全な名前空間を指定する必要があります。 |
|
名と姓の例:
<saml:Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname">
<saml:AttributeValue xsi:type="xs:anyType">James</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname">
<saml:AttributeValue xsi:type="xs:anyType">Dietrich</saml:AttributeValue>
</saml:Attribute>
Zendeskでは、このほかのユーザー属性もサポートします。その他のサポートされる属性については、「追加のユーザーデータを取得する」を参照してください。Supportのデータ要件については、Zendesk Supportの管理者にご相談ください。
Zendesk用のIDプロバイダを設定する
属性 | 値 |
---|---|
entityID | https://yoursubdomain.zendesk.com |
AudienceRestriction | yoursubdomain.zendesk.com |
your_subdomainには、Zendesk Supportのサブドメインを指定します。サブドメインがわからない場合は、自社のZendesk管理者にお問い合わせください。
ZendeskはAudienceRestriction
属性を適用します。
ZendeskにSAMLサーバーを設定する
一部のSAMLサーバーでは、Zendeskとのインテグレーションの設定時に次のような情報が必要になる場合があります。
-
Access Consumer Service (ACS) URL:https://yoursubdomain.zendesk.com/access/saml(大文字と小文字が区別されます)と指定します。「yoursubdomain」にはSupportのサブドメインを入力します。
-
SAMLシングルサインオンURLへのリダイレクト:HTTP POSTを使用します。
-
ハッシュアルゴリズム(ADFS):Active Directoryフェデレーションサービス(ADFS)を使用する場合、ZendeskではSHA-2アルゴリズムをサポートします。
リモートサインインURLおよびサインアウトURLに返されるパラメータ
ユーザーを認証システムにリダイレクトすると、ZendeskはリモートサインインURLとリモートサインアウトURLに次のパラメータを追加します。
属性 | 説明 |
---|---|
brand_id | ユーザーがサインインを試みたときに表示していたヘルプセンターのブランド。詳細については、「ブランドのヘルプセンターを作成する」を参照してください。 |
属性 | 説明 |
---|---|
サインアウトするユーザーのメールアドレス。 | |
external_id | Zendeskのユーザープロフィールに格納されているシステムの一意の識別子。 |
brand_id | ユーザーがサインアウトしたときに表示していたヘルプセンターのブランド。詳細については、「ブランドのヘルプセンターを作成する」を参照してください。 |
サインアウトURLでメールと外部ID情報を受け取りたくない場合は、Zendeskの管理者に管理インターフェイスの「リモートログアウトURL」フィールドに空白のパラメータを指定するよう依頼してください。「SAML SSOを有効にする」を参照してください。以下に例を示します。
https://www.yourdomain.com/user/signout/?email=&external_id=
ZendeskのSAML設定のトラブルシューティング
以下はZendeskのSAML 2.0のメタデータです。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EntityDescriptor entityID="yoursubdomain.zendesk.com" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
<AssertionConsumerService index="1" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://yoursubdomain.zendesk.com/access/saml"/> <!-- Note: replace 'accountname' with your Zendesk subdomain -->
</SPSSODescriptor>
</EntityDescriptor>
Zendeskに渡されるSAMLアサーションは以下のようになります。
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="s2202bbbb
afa9d270d1c15990b738f4ab36139d463" InResponseTo="_e4a78780-35da-012e-8ea7-005056
9200d8" Version="2.0" IssueInstant="2011-03-21T11:22:02Z" Destination="https://yoursubdomain.zendesk.com/access/saml">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">myidp.entity.id
</saml:Issuer>
<samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<samlp:StatusCode xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Value="urn:oasis:names:tc:SAML:2.0:status:Success">
メモ:Destination
属性の「accountname」を自社のZendeskのサブドメインで置き換えます。
Zendeskは、アサーションの属性文(
)でユーザー属性が指定されると想定しています。
<saml:AttributeStatement>
<saml:Attribute Name="http://www.w3.org/2001/XMLSchema/organization">
<saml:AttributeValue xsi:type="xs:string">Acme Rockets</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="http://www.w3.org/2001/XMLSchema/tags">
<saml:AttributeValue xsi:type="xs:string">tag1 tag2</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="http://www.w3.org/2001/XMLSchema/phone">
<saml:AttributeValue xsi:type="xs:string">555-555-1234</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="http://www.w3.org/2001/XMLSchema/role">
<saml:AttributeValue xsi:type="xs:string">agent</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="http://www.w3.org/2001/XMLSchema/custom_role_id">
<saml:AttributeValue xsi:type="xs:string">12345</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
Zendeskでサポートされるユーザー属性の名前と説明については、上述の「追加のユーザーデータを取得する」の表を参照してください。
0 コメント
サインインしてコメントを残してください。