【发布时间】:2016-04-19 19:12:33
【问题描述】:
我正在研究 IdentityServer 3 的工作原理,但我仍有问题需要完全理解。
一般概念对我来说很清楚,但我仍然不确定如何在实际项目中实现这一点。
这是我试图在我的案例中实现的基本示例:link
我有 web api 项目,我想从任何客户端(mvc、wpf、电话……)调用我的 api 方法 所以我需要适合所有客户的实现。
如果我理解得很好(可能我没有完全理解),我应该有 3 个项目:
- 客户
- API
- 托管 IdentityServer 的项目
- 获取令牌
- 返回令牌
- 调用api
- 检查 Token 是否正常
- 如果 Token 比返回数据好,否则显示错误
我的问题是:
- 我认为这是如何工作的好吗?
- 我哪里出错了?
- 这个例子对我的情况来说是否足够好?我错过了什么吗 重要吗?
- 我是否必须创建托管 IdentityServer 的项目,或者这是 只需要示例代码吗?
- IdentityServer 宿主项目是否必须是控制台应用程序 与 api 和客户端通信(如示例),或在现实世界中 这是不同的做法吗?
- 应该项目主机身份服务器知道客户端和 用户?
- 除了主机身份服务器项目之外的其他项目是否应该了解客户端和用户?
- 隐式流和混合流之间有什么区别,我需要什么以及为什么?
- 如何创建自己的登录视图?如果我使用 web 客户端,我希望有用于登录的 html 页面,但如果我使用 wpf,我希望有 wpf 登录视图,对于移动客户端也有不同的视图。
编辑: 我认为我需要 Resource Owner flow 。我假设该资源我查看用户输入用户名和密码的位置。
【问题讨论】:
标签: c# security authentication asp.net-web-api2 thinktecture-ident-server