#author("2021-09-27T19:02:13+09:00","default:k1rou","k1rou") *シングルサインオン [#x4d8eb24] #author("2021-12-17T13:40:41+09:00","default:k1rou","k1rou") *シングルサインオンとは [#m9cafaf4] **名称 [#l1d4bca3] -SSO **シングルサインオン とは [#z99f7ec4] **概要 [#o90d9971] -複数の認証が必要なシステムにおいて、一度認証すると、他のシステムでは再度認証のプロセスを経ることなくシステムを利用できるようにする仕組み。 **SSOのメリット・デメリット [#da0c25fd] ***SSOのメリット [#n87fc672] *SSOのメリット・デメリット [#da0c25fd] **SSOのメリット [#n87fc672] -ユーザの認証情報(ユーザIDとパスワードなど)を一元管理することができる。 --システム毎にユーザの認証情報を管理する煩雑さから解放される。 --システム毎に認証機能を実装する必要がなくなる。(コスト低減) ***SSOのデメリット [#i6b03e0c] **SSOのデメリット [#i6b03e0c] -不正な認証が行われた場合、不正アクセスした者がすべてのサービスを利用できる状態になる。(リスクが一ヶ所に集中する) **SSOの方式(同一ドメイン内) [#bab29fd0] ***エージェント型 [#i2baf488] *SSOの方式(同一ドメイン内) [#bab29fd0] **エージェント型 [#i2baf488] -[[Cookie]]を使ってサーバ間でユーザの識別情報を交換(共有)する方式 -Webサーバにインストールするエージェントソフトウェアが認証サーバにアクセスして認証処理を行う -認証のプロセス --ログインする際にユーザが入力した認証情報(ユーザIDとパスワードなど)をエージェントが認証サーバにアクセスして認証を行い、認証済であることを判別するための識別情報を[[Cookie]]に入れてユーザに返す --他のシステムにアクセスする際は、ユーザの[[Cookie]]の識別情報をエージェントが認証サーバにアクセスして認証を行う -エージェントの働き --エージェントは認証フィルタのような役割を持つ --[[Cookie]]を使って認証済かどうかを判断する ---未認証のユーザに対しては、認証を要求する ---認証済みのユーザに対しては、ユーザの権限に応じてURL単位のアクセス制御を行う --アクセス制御ポリシーに基づきユーザのアクセス可否を判断し、アクセス可能な場合はコンテンツをユーザに返す -適用ケース --Webアプリケーションが[[SAML]]に未対応、Webアプリケーション上にモジュールを配置することが可能な場合 ***リバースプロキシ型 [#h750ff9b] **リバースプロキシ型 [#h750ff9b] -[[リバースプロキシ]]サーバによって、ユーザ認証を集約化(共有)する方式 -すべてのWebサーバへのアクセスを、ユーザとWebアプリケーションの間に設置した[[リバースプロキシ]]が受けてユーザ認証を行う -[[Cookie]]を使う -適用ケース --Webアプリケーションが[[SAML]]に未対応、Webアプリケーション上にモジュールを配置することが不可能な場合 ***代理認証型 [#of9a5978] **代理認証型 [#of9a5978] **SSOの方式(異なるドメイン間) [#hb061399] *SSOの方式(異なるドメイン間) [#hb061399] -[[SAML]] -[[OpenID]] -[[OpenID Connect]] **IdPとSP [#qf648362] ***IdP [#b13ad658] *IdPとSP [#qf648362] **IdP [#b13ad658] -Identiy Provider -IDとパスワードを使って認証するサービス -認証したことをSPに通知する機能を持つ ***SP [#g9453672] **SP [#g9453672] -Service Provider -認証自体はIdPに任せ、認証されたという情報(認証アサーション)をIdPから受け取る機能を持つ **ID管理 [#geb8cbdc] *ID管理 [#geb8cbdc] -「[[ID管理]]」参照 **ID連携 [#geb8cbdc] *ID連携 [#geb8cbdc] -「[[ID連携]]([[フェデレーション]])」参照 ***Apacheのモジュール [#q04d5ea4] **Apacheのモジュール [#q04d5ea4] -mod_auth_tkt -エージェント型のSSOを実現する認証モジュール。SPがIdPにすでに認証済みかどうかをチケットを使って判別し、認証済みであればユーザIDをREMOTE_USERに設定することで、SSOを実現する。 **クロスドメインSSO [#xeb5d321] *クロスドメインSSO [#xeb5d321] -異なるDNSドメイン間をまたがるSSO **関連用語 [#p066dddf] *関連用語 [#p066dddf] -[[ID-WSF]] -[[OAuth]] -[[Okta]] -[[Shibboleth]] -[[Sxip]] -[[セッション]] -[[ソーシャルログイン]] -[[認証]] -[[認証クッキー]] -同じクッキードメイン内でのSSOを実現する -[[統合認証]]