当前位置: 首页 > news >正文

怎么自己制作属于自己的网站网站搜索优化怎么做

怎么自己制作属于自己的网站,网站搜索优化怎么做,太原搜索引擎优化,网络科技公司一般是做什么的“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕#xff1f; 尝试使用Okta API进行托管身份验证#xff0c;授权和多因素身份验证。 大多数OAuth 2.0指南都围绕用户的上下文#xff0c;即使用Google#xff0c;Github… “我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕 尝试使用Okta API进行托管身份验证授权和多因素身份验证。 大多数OAuth 2.0指南都围绕用户的上下文即使用GoogleGithubOkta等登录到应用程序然后代表该用户执行某些操作。 这些指南虽然有用但会忽略没有用户且只有一项服务连接到另一项服务的服务器到服务器的通信。 值得庆幸的是Okta也在此方面提供了应用程序安全性方面的帮助。 OAuth 2.0客户端凭据授予类型专门用于不存在用户CRON作业计划任务其他数据工作负载等的情况。 由于没有最终用户或浏览器需要处理因此与其他OAuth流相比此流的显示效果较差但与以用户为中心的更复杂的OAuth 2.0授予类型相比它易于理解。 在本教程中我们将介绍OAuth 2.0客户端凭据授予类型以及如何在Spring Boot中将其部署用于安全的服务器间通信。 OAuth 2.0客户端凭据授予 客户端凭据授予的目标是允许两台计算机安全地通信。 在这种授予类型中您有一个客户端将其视为您的应用程序向另一个服务这是您的资源服务器发出API请求。 为了帮助说明为什么此流程很重要让我们退后一步谈谈我们在OAuth 2.0之前所做的工作。 注意 如果您是OAuth专业人士则可以跳到下面的代码示例或在GitHub上查看示例。 在OAuth 2.0之前开发人员处理服务器到服务器身份验证的方式是使用HTTP Basic Auth。 从本质上讲这归结为开发人员将在每次请求时通过服务器的唯一用户名和密码通常称为ID和机密发送。 然后API服务将通过连接到用户存储数据库LDAP等来验证每个用户请求的用户名和密码以验证凭据。 这种方法有一些缺点和暴露点 上图中的每个应用程序都处理用户名和密码 可能需要第二个用户名和密码才能连接到用户存储 每个请求使用相同的用户名和密码 有多种方法可以减轻这些风险但这超出了本文的范围。 创建OAuth 2.0客户端凭据授予可以帮助解决HTTP Basic Auth所遇到的问题。 尽管客户端仍使用用户名和密码称为client_id和client_secret 但它们不会通过每个请求将它们直接发送到API服务而是通过授权服务器来交换令牌。 授权服务器返回一个临时访问令牌使用该令牌直到到期。 然后客户端在与资源服务器进行通信时使用此访问令牌这意味着每个有效期仅在网络上共享一次客户端最敏感的数据标识和机密从而大大降低了遭受破坏的可能性。 一旦资源服务器收到带有访问令牌的传入请求资源服务器将通过与授权服务器对话来验证令牌。 在本文的结尾我将讨论几种进一步减少网络呼叫数量的方法但首先举一个例子 让我们构建一个OAuth 2.0客户端凭据应用程序 聊够了让我们做点什么 我将向您展示如何使用两个应用程序 client和server通过Spring实现客户端凭据授予类型。 服务器将具有单个端点该端点将返回“每日消息”。 客户端将是一个简单的命令行应用程序 您可以轻松地将其替换为后端Web应用程序CRON作业或任何其他后端脚本。 设置您的授权服务器 为简单起见您将使用Okta创建OAuth 2.0授权服务器。 这将处理上面提到的所有客户端凭据授予内容。 您需要使用Okta吗 一点也不 您可以使用任何需要的OAuth 2.0兼容服务器-但由于我们的服务是免费且易于使用的因此可以加快此过程。 如果您还没有免费的开发者帐户请访问developer.okta.com 然后单击注册。 完成后您将获得两条信息您的Okta基本URL如下所示 dev-123456.oktapreview.com 以及一封有关如何激活帐户的说明的电子邮件。 激活帐户后仍然在Okta开发者控制台中然后需要创建一个应用程序和一个自定义OAuth范围。 该应用程序将为您提供客户端ID和密码而自定义范围将您的访问令牌限制为该示例。 单击应用程序菜单项然后单击添加应用程序 然后单击服务 - 下一步 。 将名称更改为您想要的名称我将使用“ My MOD App”然后单击“完成” 。 下一步需要客户端ID和客户端机密值。 接下来为您的应用程序创建一个自定义范围 。 从菜单栏中选择API- Authorization Servers 。 记住发行者的URI值 您将在下一步中使用它。 通过单击编辑铅笔来编辑授权服务器然后单击范围 - 添加范围 。 用custom_mod填写名称字段然后按Create 。 有趣的东西 创建资源服务器 该资源服务器又称API服务将过于简单由一个/mod端点组成。 在命令行上使用Spring Initializer创建一个新项目 curl https://start.spring.io/starter.tgz \-d artifactIdcreds-example-server \-d dependenciessecurity,web \-d languagejava \-d typemaven-project \-d baseDircreds-example-server \ | tar -xzvf -# change into the new directory cd creds-example-server 您还需要手动将另外一个依赖项添加到pom.xml dependencygroupIdorg.springframework.security.oauth.boot/groupIdartifactIdspring-security-oauth2-autoconfigure/artifactIdversion2.0.0.RELEASE/version /dependency 注意 我还将DemoApplication重命名为ServerApplication因为我们将很快创建另一个应用程序。 更新ServerApplication以包括EnableResourceServer批注并添加一个简单的REST控制器 EnableResourceServer SpringBootApplication public class ServerApplication {public static void main(String[] args) {SpringApplication.run(ServerApplication.class, args);}/*** Allows for PreAuthorize annotation processing.*/EnableGlobalMethodSecurity(prePostEnabled true)protected static class GlobalSecurityConfiguration extends GlobalMethodSecurityConfiguration {Overrideprotected MethodSecurityExpressionHandler createExpressionHandler() {return new OAuth2MethodSecurityExpressionHandler();}}RestControllerpublic class MessageOfTheDayController {GetMapping(/mod)PreAuthorize(#oauth2.hasScope(custom_mod))public String getMessageOfTheDay(Principal principal) {return The message of the day is boring for user: principal.getName();}} } 现在是时候配置应用程序了 我将application.properties文件重命名为application.yml并将其更新为包括 security:oauth2:client:clientId: {client-id-from-above}clientSecret: {client-secret-from-above}resource:tokenInfoUri: {issuer-uri-from-above}/v1/introspect 就是这样几行代码和几行配置 Spring Boot将自动处理访问令牌的验证您只需要担心代码。 启动它并使其运行 ./mvn spring-boot:run 如果需要您可以尝试访问http://localhost:8080/mod 它将以HTTP 401 UNAUTHORIZED响应。 创建OAuth 2.0客户端 接下来您将创建一个简单的命令行客户端您可以在任何类型的应用程序中轻松复制此逻辑。 打开一个新的终端窗口并使用Spring Initializer创建第二个应用程序 curl https://start.spring.io/starter.tgz \-d artifactIdcreds-example-client \-d dependenciessecurity \-d languagejava \-d typemaven-project \-d baseDircreds-example-client \ | tar -xzvf -# change into the new directory cd creds-example-client 与之前相同在您的pom.xml添加Spring OAuth 2.0库作为依赖项 dependencygroupIdorg.springframework.security.oauth.boot/groupIdartifactIdspring-security-oauth2-autoconfigure/artifactIdversion2.0.0.RELEASE/version /dependency 这次我将从定义配置开始再次将application.properties重命名为application.yml example:baseUrl: http://localhost:8080oauth2:client:grantType: client_credentialsclientId: {client-id-from-above}clientSecret: {client-secret-from-above}accessTokenUri: {issuer-uri-from-above}/v1/tokenscope: custom_mod 我已在example下为配置命名空间因为您可以连接到多个服务器。 我配置了一些属性 baseUrl是示例服务器的基本URL grantType定义连接的授予类型 clientId和clientSecret与上述相同 accessTokenUri定义用于获取访问令牌的URI scope是我们在上面创建的自定义范围 最后是我们的ClientApplication 从DemoApplication重命名 SpringBootApplication public class ClientApplication implements CommandLineRunner {private final Logger logger LoggerFactory.getLogger(ClientApplication.class);Value(#{ environment[example.baseUrl] })private String serverBaseUrl;public static void main(String[] args) {SpringApplication.run(ClientApplication.class, args);}BeanConfigurationProperties(example.oauth2.client)protected ClientCredentialsResourceDetails oAuthDetails() {return new ClientCredentialsResourceDetails();}Beanprotected RestTemplate restTemplate() {return new OAuth2RestTemplate(oAuthDetails());}Overridepublic void run(String... args) {logger.info(MOD: {}, restTemplate().getForObject(serverBaseUrl /mod, String.class));} } 我想谈谈几件事 CommandLineRunner界面添加了一个run方法该方法在初始化后自动调用应用程序在离开此方法后退出 我创建了一个ClientCredentialsResourceDetails bean该bean绑定到我的配置属性 example.oauth2.client 我使用OAuth2RestTemplate代替标准的RestTemplate它自动管理所有OAuth 2.0访问令牌交换并设置Authentication: Bearer标头值。 基本上它处理所有OAuth详细信息因此您无需担心其中任何一个 使用./mvnw spring-boot:run运行应用程序您应该看到类似于以下内容的控制台输出 2018-03-20 12:56:10.058 INFO 15833 --- [main] c.e.c.ClientApplication: MOD: The message of the day is boring for user: 0oabcd12yz2EpHuis75s3 客户端已成功与服务器通信 还不错吧 在短短的几行代码中您就可以设置OAuth 2.0授权服务器并进行配置还可以创建两个Spring应用程序一个客户端和一个服务器现在可以使用OAuth 2.0客户端凭据授予类型安全地进行通信 注意如果您看到401或500异常请再次检查您的application.yml配置文件是否包含正确的信息。 额外的功劳减少对授权服务器的呼叫次数 上面的第二个序列图似乎比第一个更复杂即使考虑到访问令牌的重用也是如此。 访问令牌是不透明的它们后面没有任何规范格式由授权服务器实现。 在Okta我们使用签名的JWT这意味着您可以在本地对其进行验证而不是根据每个请求从API服务向授权服务器提出额外的请求。 我们有几种不同语言的帮助程序库和一个Spring Boot入门程序 它将为您处理本地验证。 注意在撰写本文时 okta-spring-boot仅适用于Spring Boot 1.5.x请参见GitHub上的示例 进一步了解OAuth 2.0和Okta 在这篇文章中我已经解释了OAuth 2.0客户端凭据授予类型并创建了用于执行此流程的小型演示应用程序使用Spring Boot只需很少的代码。 如果您有任何疑问请将其留在下面或在Twitter上ping我 briandemers 或OktaDev 。 有关OAuth 2.0和Okta的更多信息请查看以下资源 OAuth到底是什么 OAuth.com 使用Spring Boot和OAuth保护您的SPA 使用Spring Boot和OAuth 2.0进行安全的服务器到服务器通信最初于2018年4月2日发布在Okta开发者博客上。 “我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕 尝试使用Okta API进行托管身份验证授权和多因素身份验证。 翻译自: https://www.javacodegeeks.com/2018/06/spring-boot-server-to-server-communication-okta.html
http://www.pierceye.com/news/768067/

相关文章:

  • 百度大全seo推广话术
  • 做网站赚钱流程英文网站建设注意什么
  • 腾讯 云上做网站教程开源系统 网站
  • 临沂罗庄做网站服装商城网站建设价格
  • 保定企业官网搭建对网站有效的优化软件
  • 网站后台代码在哪修改股权众筹网站建设
  • 站群源码北京公司注销
  • 营销型网站策划建设台州市住房和城乡建设厅网站
  • 达内网站开发课程wordpress自动添加标签页
  • 免费的个人网站空间我做淘宝网站卖东西怎么激活
  • 织梦dedecms女性时尚门户网站模板常州网络推广平台
  • 网站怎么在百度搜不到资源网源码
  • 怎样网站制作设计广西住房城乡建设部官网
  • 手机网站建设方案书王烨是哪个小说的主角
  • 临沂网站案例百事可乐网络营销推广方法
  • 广州网站建设信科网络冷水滩网站建设
  • 做网站设计的价格企业seo网站营销推广
  • 河南省住房和建设厅门户网站网站开发图片素材
  • 在线代理浏览器网站设计本笔记本
  • gta5网站正在建设中柳州团购汽车网站建设
  • 建设一个网站要多少费用吗wordpress 缓存首页
  • 绵阳网站排名深圳哪家网页设计好
  • 软件 开发公司宿迁seo优化
  • 网站开发demo版本做网站服务器的配置
  • 网页游戏排行2013伊克昭盟seo
  • 单页站如何做网站seo优化建e网卧室设计效果图
  • 免费做网站的app巩义seo
  • 做金融服务网站赚钱阿里巴巴网站建设论文
  • 四川做网站的公司哪家好免费团购网站模板
  • 网站建设动漫网站模板怎么做的