code: func NewJWTProvider(opts ...JWTProviderOption) (*TokenProvider, error) {
  	config := &TokenProviderConfiguration{
  		ResourceURI: eventhubResourceURI,
  	}
  
  	for _, opt := range opts {
  		err := opt(config)
  		if err != nil {
  			return nil, err
  		}
  	}
  
  	if config.aadToken == nil {
  		spToken, err := config.NewServicePrincipalToken()
  		if err != nil {
  			return nil, err
  		}
  		config.aadToken = spToken
  	}
  	return &TokenProvider{tokenProvider: config.aadToken}, nil
  }
docs: // NewJWTProvider builds an Azure Active Directory claims-based security token provider