go net.listen()函数,其中包括SSO,AUTHZ,会议管理和Anycast
#aws #安全 #go #sso

Border0,我们是Go编程语言的大用户和粉丝;我们几乎所有的代码都是在Go中编写的。因此,开源我们的SDK for Border0才有意义。该SDK将使爱好者,新手或专家更容易管理其Border0资源,或者更好的是将SSO身份验证放在任何网络前。这使您可以将Border0直接嵌入您的应用程序;让我们潜水!

使用Border0 Net.Listener类型构建TCP服务

Border0 SDK是GO开发人员的强大工具,旨在将强大的身份验证和颗粒状访问控制无缝地集成到您的应用程序中。除管理Border0资源外,SDK还提供了对net.Listener接口的支持。

大多数GO开发人员都熟悉Net.Listener界面。 Border0的Net.Listener界面采用了这种熟悉度,并通过Border0身份验证,授权功能和全球Anycast Network来增强它。

因此,虽然它保留了GO标准网的简单性和熟悉性。listener,它具有边框的高级功能。

当您使用Border0的Net.Listener实施时,您不仅会打开通信的端口;您还确保了通过的每个请求都是经过身份验证并持续授权的。这意味着您的应用程序不受入口处的未经授权访问的屏蔽。听众利用Border0的策略,使开发人员可以准确指定哪些单一签名(SSO)身份可以访问服务以及在什么条件下。这种颗粒状控制可确保您的服务既安全又合规。此外,您将获得审核和会话日志功能,为您提供有关与听众连接的人的见解,从而增强了您的审计功能。此外,侦听器已集成到Border0 Anycast平台中,确保了低延迟和无缝的用户体验。

一个简单的HTTP服务器示例,带有Border00

Learn how to build web applications with Go and Border0. Also see example code on Github

学习如何使用GO和Border0构建Web应用程序。另请参阅GitHub上的示例代码
‍The example below证明,使用几行代码,开发人员可以利用Border0的功能,将GO的标准库的简单性与企业级安全性和可扩展性相结合。

package main

import (
    "fmt"
    "log"
    "net/http"
    "os"
    "github.com/borderzero/border0-go"
    "github.com/borderzero/border0-go/listen"
)

func main() {
  listener, err := border0.Listen(
   // use the Border0 socket name defined here 
   // socket will be created if not exists
   listen.WithSocketName("sdk-socket-http"), 
   // Let's attach a policy; make sure this policy exist
   listen.WithPolicies([]string{"production-engineers-only"}),
   // if not provided, Border0 SDK will use BORDER0_AUTH_TOKEN env var
   listen.WithAuthToken(os.Getenv("BORDER0_AUTH_TOKEN")), 
  )
  if err != nil {
    log.Fatalln("failed to start listener:", err)
  }

  handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  // Border0 will set various HTTP headers related to the users' identity.
  // We can use this to build identity aware applications
    name := r.Header.Get("X-Auth-Name") 
    email := r.Header.Get("X-Auth-Email") 
    fmt.Fprintf(w, "Hello, %s %s! This is Border0-go + standard library http.", 
name, email)
  })

  log.Fatalln(http.Serve(listener, handler))
}

这仅有几行GO代码,您实现了一个HTTP服务器,该服务器会在Border0侦听器上聆听请求。请注意,此听众不会在本地端口上收听,它仅通过Border0提供,没有秘密旁路!

要运行服务器,只需执行以下命令:

go run main.go

该程序会自动为您的GO Web服务器创建Border0套接字,从而使其通过我们的Anycast基础架构在全球范围内访问。我们处理您的SSL证书,DNS和执行内置的SSO(单登录)身份验证。此外,会话日志还可以洞悉谁访问您的服务。另外,使用Border0侦听器,可以从NAT后面进行操作,而无需开放入站TCP端口


使用Border0 Go SDK查看此视频,在该视频中,我们在其中构建了上面的应用。

管理Border0插座和政策

使用SDK,您还可以管理Border0中使用的所有主要组件,主要是插座和策略。您可以将插座视为虚拟主机或代理服务器,只是在SSO后面。这些都有各种口味,例如HTTP(S),SSH,数据库和TCP插座。这些都可以按照您的独特要求进行配置,最重要的是,每个要求都将具有一组Border0策略。这些policies allow you to configure who (SSO identity) should have access 用于什么资源和在什么条件下。

所有这些都可以使用我们的管理门户或Border0 CLI配置。两者都使用api.border0.com可用的公共REST API。拥有Border0帐户的任何人都可以使用此API来自动化您的唯一要求。如果您最喜欢的语言是走的,那么最简单的方法是使用我们的SDK。它抽象了一些低级API处理,使与Border0 API一起工作很高兴。

使用Border0 GO SDK,您可以快速获取所有插座和策略的列表,创建新的策略或管理并删除现有的插座和策略。您所需要的只是一个API令牌,您可以通过自动化旅程进行比赛!为了轻松入门,我们组合了许多常见的例子;查看all the examples here

入门

Go中的Network套接字编程很有趣,并且使用Border0 GO SDK,您可以免费获得许多额外的功能,从而使其更加愉快!现在,您不必担心SSL证书,DNS名称,端口,防火墙或负载平衡器;很神奇,对吗?

开始使用一些示例最容易,因此请务必查看examples folder here。在前几个示例中,我们将向您展示如何使用SDK管理Border0插座和策略。其次是各种网络。示例示例向您展示了如何在“ Border0”中使用内置支持或什至是执行内容重写的身份验证的反向代理!

很高兴尝试一下?查看我们的fully featured free community editionschedule a demo,让我们通过自定义演示来驾驶您;让我们一起怪异 快乐黑客!