63915
ある技術（やりたいこと）の実装方法を調査したいのですが、技術の名称が分からず、調査に難儀しています。  
やりたいことは以下の通りです。

  * 私はWebアプリケーションAを作っている
  * WebアプリAは、インターネット上に公開されている
  * WebアプリAには、小さなUI部品Xがある 
    * 情報Yが表示されており、ボタンZが配置してある
  * UI部品Xは、「外部の任意のWebアプリケーションB」に組み込むことができる 
    * 実装方法は問わない（iframeにするのが簡単そうだと考えている）
    * 例えばグループウェアのトップページ（ログイン後の画面）とか、とにかく「外部のWebアプリBで、すでにログイン済みの状態」でのみ開けるどこかのページに組み込める
    * 情報Yには、WebアプリAにおけるユーザの情報が表示されている（ログインしないと見れない情報）
    * ボタンZをクリックすると、WebアプリAに画面遷移する（別ウィンドウを開く想定）
    * このとき、WebアプリAでは「すでにログイン済み」の状態で特定の画面に遷移する

基礎にあるのは「シングルサインオン」という概念だろうという気はしています。  
ただ、UI部品Xを他のアプリケーションに組み込んで動作させられる、というのは、シングルサインオンの枠組みの中の話なのか？ というあたりがよく分かりません。

要件を分解し、独立させれば、それぞれ解決はできそうにも思えます。  
例えばWebアプリB上の部品Xに情報Yを表示させるのは、情報Yを取得するためのWebAPI（WebアプリA上にある）をシングルサインオンで認証させて呼び出せるようにすればいいでしょう（CORSとか色々超えるべきハードルもありますが）。

私がやりたいことは、そういう風に個別に分割して対処するしかないものなのか、それとも「UI部品Xのようなものを提供したり組み込んだりすること」をトータルで支える技術・概念があるのか・・・どうなのでしょうか？
CC BY-SA 4.0
2020-03-16T07:20:07.530
63893
2020-03-16T23:07:55.393
8078
question
untagged
自分の製品が持っているUI機能の一部を他製品の画面に表示させ動作させる技術
部品、サービス、認証、認可このあたりのキーワードで整理するのがいいかと思います。やりたいのはどれですか？  
認可スコープをどうとらえていますか？  
認可管理をおっしゃっている部品に持たせるならそれはもはやサービスでになりますし、部品に徹するのであれば、入力情報はすべて利用者側で用意して連携すべきです。

はたまた、画面そのものを部品として公開するなら、プログラムモジュールごとわたしてやればよいので、後は勝手に作ってねとなります。

一般的な認可の方式であればOAUTH2の概念を一度さらってみるといいと思います。  
また、認可前の認証についてはWebAuthn（fido）の仕様が参考になります。

オレオレ認可、オレオレ認証は今時はやらないかと

<https://openid-foundation-japan.github.io/rfc6749.ja.html>  
<https://webauthn.io/>

読み物としてはこのあたりが面白いです  
<https://speakerdeck.com/line_developers/the-8th-continent-discovery-of-the-
cyber-continent-and-digital-identity>
CC BY-SA 4.0
2020-03-16T22:56:21.147
63915
2020-03-16T23:07:55.393
2020-03-16T23:07:55.393
10174
10174
63893
answer