我有3个应用程序,一个是桌面应用程序,这是我的客户端,第二个是我要保护的Web Api,最后一个是api,它检查具有密码的用户是否存在。
就我而言,我想将此流与Azure AD连接起来。
我认为这应该像这样工作: 1.DesktopApplication向AZURE发送带有clientid,clientsecret,用户名和密码的请求 2.Azure将带有用户名和密码的请求发送到我的api,在那里我可以检查该用户是否存在(如果存在),我将返回“ true”(或类似的东西) 3.如果api返回“ true”,Azure可以返回到DesktopApplication令牌 4. DidsktopApplication将发送带有令牌的安全Web Api请求 5.DesktopApplication从安全的Web Api接收内容
3点的api与5点的api不同。
是否可以使用Azure AD进行此流程?如果不能,我是否可以对流程进行一些操作以保护Azure的Web Api并仍将用户存储在旧的db(oracle)中?
答案 0 :(得分:1)
最好使用OpenID Connect身份验证流对用户进行身份验证并以这种方式获取令牌。
您建议的方法有一些缺点:
因此最好使用这样的流程:
它将向用户显示一个可以登录的弹出窗口,其结果是,您将获得一个ID令牌(告诉您的桌面应用程序用户)和该API的访问令牌。