- 印刷する
- PDF
SSO連携
- 印刷する
- PDF
Classic/VPC環境で利用できます。
SSO(Single Sign On)連携とは、WORKBOXと顧客会社に一つのIDでアクセスできる統合ログイン連携を意味します。WORKBOXは、基本的にSP(Service Provider)方式のSSOをサポートします。DevelopersのSSOは、OAuth 2.0とSAML(Security Assertion Markup Language)2.0の二つの方式を両方サポートします。ユーザーがどの方式に連携を設定するかに応じて設定方法が少しずつ異なります。
SSO連携の共通手順
2つの方式の中からどっちを選んだとしても、連携設定のために共通して行う必要のある手順があります。共通手順に関する説明は以下のとおりです。
- Services > Business Applications > WORKBOXのDevelopersでSSO設定を選択します。
- 設定を選択をクリックしてONに変更します。
- OAuth 2.0とSAML 2.0の中から希望する連携項目を選択し、設定を行います。
- OAuth 2.0基盤のSSO:OAuth 2.0基盤のSSOの動作方式と設定方法を参考
- SAML基盤のSSO:SAML基盤のSSOのSSOの動作方式と設定方法を参考
- [適用] ボタンをクリックします。
OAuth 2.0基盤のSSO
OAuth 2.0基盤のSSOの動作方式と実装方法は以下のとおりです。
① WORKBOXサービスの使用
ユーザーは、WORKBOXサービスを使用するためにウェブブラウザでURLにアクセスするか、WORKBOXアプリを実行します。
② 認可コードの発行をリクエスト
WORKBOXにログインしていない場合、顧客会社の認証システムに認可コードの発行をリクエストします。
③ (顧客会社にログインしていない場合)ログインページを実行
顧客会社のシステムにログインしていない場合、ユーザーに独自に作成したログインページを提供します。
④ IDとパスワード入力
ユーザーは、顧客会社のログインポリシーに応じてIDとパスワードを入力します。
⑤ 顧客会社の認証処理後、認可コードを発行
ID・パスワードで顧客会社のシステムが認証処理を行い、認可コードを発行します。顧客会社のシステムに既にログインしている場合、3~4番の段階を飛ばして直接認可コードを発行します。
認可コードは、Access Tokenを返すのに使用したら消滅する1回限りのコードにします。
⑥ 認可コードを返す(リダイレクト)
最初に認可コードの発行をリクエストした際に受けたRequestの中で、WORKBOX認証システムのredirect_uriで認可コードをリダイレクトします。
⑦ 認可コードでAccess Tokenをリクエスト
認可コードをパラメータにして顧客会社の認証システムにAccess Tokenをリクエストします。
⑧ Access Tokenを返す
顧客会社の認証システムは、認可コードを検証した後、Access Tokenを発行して返します。
⑨ Access Tokenでユーザー情報をリクエスト
Access Tokenをパラメータにして顧客会社の認証システムにユーザー情報をリクエストします。
⑩ ユーザー情報を返す
顧客会社の認証システムは、Access Tokenを検証した後、ユーザーのログインemail情報を返します。
⑪ WORKBOX認証トークンの発行
WORKBOX認証システムは、ユーザー情報をもとにWORKBOX用認証トークンを発行します。
Step 1:Web Login URL
ユーザーがWORKBOXウェブサービスにログインするために、IDとパスワードを入力するページです。ログインページは、顧客会社のニーズに合わせて直接作成します。
顧客会社の認証システムでログインを処理した後、認可コードを発行してredirect_uriで返します。
Request URL
https://顧客会社ドメイン/顧客会社ログインページ
WORKBOXのインフラセキュリティポリシーに従い、443ポートだけ使用できます。
作成したRequest URLは、NAVERクラウドプラットフォームコンソールDevelopersのSSO設定でWeb Login URLに登録します。
HTTP Method
GET
Request
パラメータ | タイプ | 必須有無 | 説明 |
---|---|---|---|
response_type | String | Y | 認証プロセスに対する区分値としてどんな形の結果値を受け取るかを明示、常に「code」という固定された文字列を使用 |
client_id | String | Y | NAVERクラウドプラットフォームコンソールDevelopersで登録したClient ID値 |
redirect_uri | String | Y | 認証を処理した後に認可コードを返すURLで、URLエンコードされている |
state | String | Y | CSRF(Cross-stie request forgery)防止のために任意に作成された固有値 (認可コードを返す際にURLに持たせてパラメータでstate値を渡す) |
loginId | String | N | ユーザーが入力したLoginアカウント |
Step 2:認可コードの発行
顧客会社のSSOシステムで顧客会社の認証とSSOに必要な処理を行った後、認可コードを発行してWORKBOX認証システムにリダイレクトします。
Request URL
URLは、WORKBOX認証システムでログインページをリクエストする際に渡したredirect_uriパラメータ値です。
例:https://WORKBOX認証システムURL/authorizationURL
URLは、ユーザー環境やWORKBOXポリシーに応じていつでも変わりうる値なので、必ずredirect_uriで渡されたURLを使用します。
HTTP Method
GET/POST
Request
パラメータ | タイプ | 必須有無 | 説明 |
---|---|---|---|
code | String | Y(成功) | 認可コード。Access Tokenの発行に用いられる1回限りのコード |
state | String | Y(成功) | CSRFを防止するために使用するclient sideの認証値で、URLエンコードされている(redirect_uriパラメータで渡したstate値) |
error | String | Y(失敗) | 失敗の場合に返すエラーコード |
error_description | String | Y(失敗) | 失敗の場合に返すエラーの説明 |
Step 3:Access Token発行API
顧客会社のSSO認証システムは、認可コードを検証した後、Access Tokenを発行して返します。
Request URL
https://顧客会社ドメイン/accessToken
WORKBOXのインフラセキュリティポリシーに従い、443ポートだけ使用できます。作成したRequest URLは、NAVERクラウドプラットフォームコンソールDevelopersのSSO設定でAccess Token Return APIに登録します。
HTTP Method
POST
Request
パラメータ | タイプ | 必須有無 | 説明 |
---|---|---|---|
grant_type | String | Y | 認証過程に対する区分値としてどんな形の結果値を受け取るかを明示。常に「authorization_code」という固定された文字列を使用 |
client_id | String | Y | NAVERクラウドプラットフォームコンソールDevelopersで登録したClient ID値 |
client_secret | String | Y | NAVERクラウドプラットフォームコンソールDevelopersで登録したClient Secret値 |
code | String | Y | Authorization Code |
state | String | N | CSRFを防止するために使用するclient sideの認証値で、URLエンコードされている |
Response
プロパティ | タイプ | 必須有無 | 説明 |
---|---|---|---|
access_token | String | Y(成功時) | Access Token |
token_type | String | Y(成功時) | Access Tokenのtype。「Bearer」に固定 |
expires_in | String | Y(成功時) | Access Tokenの有効期間(秒)。アプリケーションの実際のログイン維持時間 |
error | String | Y(失敗時) | 失敗の場合に返すエラーコード |
error_description | String | Y(失敗時) | 失敗の場合に返すエラーの説明 |
Step 4:ユーザー情報を返すAPI
顧客会社のSSOシステムでAccess Tokenを検証した後、ユーザー情報を返します。
Request URL
https://顧客会社ドメイン/ユーザー情報
WORKBOXのインフラセキュリティポリシーに従い、443ポートだけ使用できます。
作成したRequest URLは、NAVERクラウドプラットフォームコンソールDevelopersのSSO設定でUser info return APIに登録します。
HTTP Method
POST
Request
パラメータ | タイプ | 必須有無 | 説明 |
---|---|---|---|
client_id | String | Y | NAVERクラウドプラットフォームコンソールDevelopersで登録したClient ID値 |
client_secret | String | Y | NAVERクラウドプラットフォームコンソールDevelopersで登録したClient Secret値 |
access_token | String | Y | Access Token |
Response
プロパティ | タイプ | 必須有無 | 説明 |
---|---|---|---|
email_id | String | Y(成功時) | メンバーのログインID(業務メール) |
error | String | Y(失敗時) | 失敗の場合に返すエラーコード |
error_description | String | Y(失敗時) | 失敗の場合に返すエラーの説明 |
SAML基盤のSSO
SAML(Security Assertion Markup Language) 2.0基盤のSSOの動作方式と実装方法は以下のとおりです。
① WORKBOXサービスの使用
ユーザーは、WORKBOXサービスを使用するためにウェブブラウザでURLにアクセスするか、WORKBOXアプリを実行します。
② SAML Request作成後に伝達(リダイレクト)
WORKBOXにログインしていない場合、顧客会社の認証システムにSAML Requestを作成して渡します。
③ SAML Requestの検証後、(顧客会社にログインしていない場合)ログインページを実行
顧客会社の認証システムではSAML Requestが有効なリクエストかどうかを確認し、顧客会社のシステムにログインしていない場合はユーザーに独自作成したログインページを提供します。
④ IDとパスワード入力
ユーザーは、顧客会社のログインポリシーに応じてIDとパスワードを入力します。
⑤ 顧客会社の認証処理後にSAML Responseを作成
IDとパスワードで顧客会社のシステムが認証を行い、SAML Responseを作成します。
顧客会社のシステムに既にログインしている場合、3~4番の段階を飛ばして直接SAML Responseを作成します。
SAML ResponseはWORKBOXに予め登録した証明書で、電子署名をする必要があります。
⑥ SAML Requestを伝達(リダイレクト)
SAML ResponseをWORKBOXから渡したSAML RequestのACS URLで渡します。
⑦ SAML Responseの確認後、WORKBOX認証トークンを発行
顧客会社が予め登録した証明書でSAML Responseを検証して認証を行ってユーザー情報を確認し、WORKBOX用認証トークンを発行します。
Step 1:SAMLウェブログインページ
ユーザーがWORKBOXウェブサービスにログインするために、IDとパスワードを入力するページです。ログインページは、顧客会社のニーズに合わせて直接作成します。
SAML Requestを検証し、顧客会社の認証システムでログインを処理した後、SAML Responseを作成してACS URLで返します。
Request URL
https://顧客会社ドメイン/顧客会社ログインページ
WORKBOXのインフラセキュリティポリシーに従い、80または443ポートのみ使用できます。
作成したRequest URLは、NAVERクラウドプラットフォームコンソールDevelopersのSSO設定でWeb Login URLに登録します。
HTTP Method
GET
Request
パラメータ | タイプ | 必須有無 | 説明 |
---|---|---|---|
SAMLRequest | String | Y | SAML 2.0 Request明細に従った文字列(Deflate + Base64でエンコードした値) |
RelayState | String | Y | 認証を失敗した場合、再度試みるURL |
Step 2:SAML Requestの検証
SAML Requestは、Deflate + Base64でエンコードされています。
SAML Requestの明細
<?xml version="1.0" encoding="UTF-8"?>
<saml2p:AuthnRequest
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="{ACS URL}"
ID="{WORKBOX認証システムから発行するID}"
IssueInstant="{Requestの作成日時}"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
ProviderName="ncloudworkbox.com"
Version="2.0">
<saml2:Issuer
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">ncloudworkbox.com</saml2:Issuer>
<saml2p:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
</saml2p:AuthnRequest>
SAML Requestの各項目は以下のとおりです。
項目 | 説明 |
---|---|
AuthnRequest AssertionConsumerServiceURL | 略してACS URLといい、SAML Responseを伝達するURL |
AuthnRequest ID | WORKBOX認証システムで発行するIDで、SAML Response作成時に使用 |
AuthnRequest IssueInstant | SAML Requestの作成日時 |
AuthnRequest ProtocolBinding | 「HTTP-POST」で送るので、SAML Responseは必ずPOST方式で伝送 |
AuthnRequest ProviderName | サービス提供者名で「ncloudworkbox.com」に送っている |
Issuer | サービス提供者から発行されるIDで、SAML Response作成時に使用 |
SAML Request Example
<?xml version="1.0" encoding="UTF-8"?>
<saml2p:AuthnRequest
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="https://会社ID.ncloudworkbox.com/...."
ID="bemkplgpdoemkhjmncgmbcdibglpngclfombpmed"
IssueInstant="2018-02-14T03:33:49.999Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
ProviderName="ncloudworkbox.com"
Version="2.0">
<saml2:Issuer
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">ncloudworkbox.com</saml2:Issuer>
<saml2p:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
</saml2p:AuthnRequest>
Step 3:SAML Response電子署名のための証明書登録
SAML Response電子署名時に使用する証明書を登録します。WORKBOXはACS URLでSAML Responseを受け取ると、この証明書を利用して有効性を検証します。
NAVERクラウドプラットフォームコンソールDevelopersのSSO設定でCertificate Fileに証明書を登録します。
SAML 2.0基盤の電子署名用証明書登録
ログアウト
ログアウトは、WORKBOXログアウトと顧客会社ログアウトに分けて説明します。
WORKBOXログアウト
顧客会社のシステムからログアウトした後、WORKBOXからもログアウトする際に使用します。
ログアウトのリクエストを受けると、WORKBOXではログインしているWORKBOXのアカウントをログアウトさせ、渡されたredirect_uriにリダイレクトします。
redirect_uriはwhite_urlで管理されるため、NAVERクラウドプラットフォームコンソールDevelopersのSSO設定でLogout Redirection Domainに登録する必要があります。
Request URL
https://会社ID.ncloudworkbox.com/authn/logoutProcess
HTTP Method
GET/POST
Request
パラメータ | タイプ | 必須有無 | 説明 |
---|---|---|---|
redirect_uri | String | Y | WORKBOXからログアウトした後、リダイレクトするURLにURLエンコードされている |
Response
redirect_uriにリダイレクトします。
顧客会社ログアウト
WORKBOXからログアウトした後、顧客会社のシステムからもログアウトする際に使用します。
Request URL
https://顧客会社ドメイン/ログアウト
WORKBOXのインフラセキュリティポリシーに従い、443ポートだけ使用できます。
作成したRequest URLは、NAVERクラウドプラットフォームコンソールDevelopersのSSO設定でLogout URLに登録します。
HTTP Method
GET
Request
パラメータ | タイプ | 必須有無 | 説明 |
---|---|---|---|
redirect_uri | String | N | 顧客会社のシステムからログアウトした後、リダイレクトするredirect_uri。URLエンコードされている |
SSO連携完了後
SSO連携が完了すると、それまで使用してきた企業情報システムのログイン情報でWORKBOXにログインできるようになり、ログイン情報の管理が便利になります。