我正在通过 AWS AppStream 对应用程序的部署进行原型设计。通过 Web 门户(使用 SAML)管理对流的访问。我的应用程序需要知道用户的身份。我可以提示他们,但我不想让他们同时登录门户和应用程序。我想获得他们在门户网站上提供的凭据。(AppStream 实例在“PhotonUser”帐户下运行,因此我无法从操作系统获取用户名。)
AWS SDK 有一个Session
包含用户 ID 的类,但我找不到为当前流会话获取它的实例的方法。
我正在通过 AWS AppStream 对应用程序的部署进行原型设计。通过 Web 门户(使用 SAML)管理对流的访问。我的应用程序需要知道用户的身份。我可以提示他们,但我不想让他们同时登录门户和应用程序。我想获得他们在门户网站上提供的凭据。(AppStream 实例在“PhotonUser”帐户下运行,因此我无法从操作系统获取用户名。)
AWS SDK 有一个Session
包含用户 ID 的类,但我找不到为当前流会话获取它的实例的方法。
让门户将标识用户的令牌作为会话上下文传递到 AppStream 。令牌可以是您想要的任何东西(受非强制的1024 字节限制),但可能应该包括一个时间戳,以便它可以过期和一个签名,以确保它没有被伪造或篡改。
修改您的门户以通过CreateStreamingURL API为每个用户创建自定义 URL,以提供令牌作为会话上下文。AppStream 中的应用程序将会话上下文视为命令行参数。解析和验证令牌(即检查它是否过期并验证签名)。
AppStream_UserName 环境变量在每个会话中设置。
因此,您的门户应该获取他们的电子邮件地址并将其与 CreateStreamingURLRequest(加上堆栈、车队等)一起使用。门户现在应将其浏览器会话重定向到此 URL。
在该运行实例中,AppStream_UserName 将是他们的电子邮件地址。