SSO連携
    • PDF

    SSO連携

    • PDF

    Article Summary

    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つの方式の中からどっちを選んだとしても、連携設定のために共通して行う必要のある手順があります。共通手順に関する説明は以下のとおりです。

    1. Services > Business Applications > WORKBOXDevelopersSSO設定を選択します。
    2. 設定を選択をクリックしてONに変更します。
    3. OAuth 2.0とSAML 2.0の中から希望する連携項目を選択し、設定を行います。
    1. [適用] ボタンをクリックします。

    workbox-6-1-1_ja(1).png


    OAuth 2.0基盤のSSO

    OAuth 2.0基盤のSSOの動作方式と実装方法は以下のとおりです。

    workbox-6-1-2_ja.png

    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に登録します。

    workbox-6-2-1_ja.png

    HTTP Method

    GET

    Request

    パラメータタイプ必須有無説明
    response_typeStringY認証プロセスに対する区分値としてどんな形の結果値を受け取るかを明示、常に「code」という固定された文字列を使用
    client_idStringYNAVERクラウドプラットフォームコンソールDevelopersで登録したClient ID値
    redirect_uriStringY認証を処理した後に認可コードを返すURLで、URLエンコードされている
    stateStringYCSRF(Cross-stie request forgery)防止のために任意に作成された固有値 (認可コードを返す際にURLに持たせてパラメータでstate値を渡す)
    loginIdStringNユーザーが入力した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

    パラメータタイプ必須有無説明
    codeStringY(成功)認可コード。Access Tokenの発行に用いられる1回限りのコード
    stateStringY(成功)CSRFを防止するために使用するclient sideの認証値で、URLエンコードされている(redirect_uriパラメータで渡したstate値)
    errorStringY(失敗)失敗の場合に返すエラーコード
    error_descriptionStringY(失敗)失敗の場合に返すエラーの説明

    Step 3:Access Token発行API

    顧客会社のSSO認証システムは、認可コードを検証した後、Access Tokenを発行して返します。

    Request URL

    https://顧客会社ドメイン/accessToken
    

    WORKBOXのインフラセキュリティポリシーに従い、443ポートだけ使用できます。作成したRequest URLは、NAVERクラウドプラットフォームコンソールDevelopersのSSO設定でAccess Token Return APIに登録します。

    workbox-6-2-2_ja.png

    HTTP Method

    POST

    Request

    パラメータタイプ必須有無説明
    grant_typeStringY認証過程に対する区分値としてどんな形の結果値を受け取るかを明示。常に「authorization_code」という固定された文字列を使用
    client_idStringYNAVERクラウドプラットフォームコンソールDevelopersで登録したClient ID値
    client_secretStringYNAVERクラウドプラットフォームコンソールDevelopersで登録したClient Secret値
    codeStringYAuthorization Code
    stateStringNCSRFを防止するために使用するclient sideの認証値で、URLエンコードされている

    Response

    プロパティタイプ必須有無説明
    access_tokenStringY(成功時)Access Token
    token_typeStringY(成功時)Access Tokenのtype。「Bearer」に固定
    expires_inStringY(成功時)Access Tokenの有効期間(秒)。アプリケーションの実際のログイン維持時間
    errorStringY(失敗時)失敗の場合に返すエラーコード
    error_descriptionStringY(失敗時)失敗の場合に返すエラーの説明

    Step 4:ユーザー情報を返すAPI

    顧客会社のSSOシステムでAccess Tokenを検証した後、ユーザー情報を返します。

    Request URL

    https://顧客会社ドメイン/ユーザー情報
    

    WORKBOXのインフラセキュリティポリシーに従い、443ポートだけ使用できます。
    作成したRequest URLは、NAVERクラウドプラットフォームコンソールDevelopersのSSO設定でUser info return APIに登録します。

    workbox-6-2-3_ja.png

    HTTP Method

    POST

    Request

    パラメータタイプ必須有無説明
    client_idStringYNAVERクラウドプラットフォームコンソールDevelopersで登録したClient ID値
    client_secretStringYNAVERクラウドプラットフォームコンソールDevelopersで登録したClient Secret値
    access_tokenStringYAccess Token

    Response

    プロパティタイプ必須有無説明
    email_idStringY(成功時)メンバーのログインID(業務メール)
    errorStringY(失敗時)失敗の場合に返すエラーコード
    error_descriptionStringY(失敗時)失敗の場合に返すエラーの説明

    SAML基盤のSSO

    SAML(Security Assertion Markup Language) 2.0基盤のSSOの動作方式と実装方法は以下のとおりです。

    workbox-6-3-1_ja.png

    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に登録します。

    workbox-6-3-2_ja.png

    HTTP Method

    GET

    Request

    パラメータタイプ必須有無説明
    SAMLRequestStringYSAML 2.0 Request明細に従った文字列(Deflate + Base64でエンコードした値)
    RelayStateStringY認証を失敗した場合、再度試みる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 IDWORKBOX認証システムで発行するIDで、SAML Response作成時に使用
    AuthnRequest IssueInstantSAML 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-6-3-3_ja.png


    ログアウト

    ログアウトは、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_uriStringYWORKBOXからログアウトした後、リダイレクトするURLにURLエンコードされている

    Response

    redirect_uriにリダイレクトします。

    顧客会社ログアウト

    WORKBOXからログアウトした後、顧客会社のシステムからもログアウトする際に使用します。

    Request URL

    https://顧客会社ドメイン/ログアウト
    

    WORKBOXのインフラセキュリティポリシーに従い、443ポートだけ使用できます。
    作成したRequest URLは、NAVERクラウドプラットフォームコンソールDevelopersのSSO設定でLogout URLに登録します。

    HTTP Method

    GET

    Request

    パラメータタイプ必須有無説明
    redirect_uriStringN顧客会社のシステムからログアウトした後、リダイレクトするredirect_uri。URLエンコードされている

    SSO連携完了後

    SSO連携が完了すると、それまで使用してきた企業情報システムのログイン情報でWORKBOXにログインできるようになり、ログイン情報の管理が便利になります。


    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.