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